存储引擎

mongodb存储引擎

落爺英雄遲暮 提交于 2019-12-05 11:37:22
在了解了mongodb的基本使用之后,我们看一下mongodb的存储引擎。从更深层次了解mongodb的数据处理机制,也在mongodb出现数据丢失等情况时,便于对问题进行排查。 1、 存储引擎wiredTiger mongodb从3.0开始引入了可插拔存储引擎的概念。目前主要有MMAPV1、WiredTiger两种引擎可供选择。在3.2版本之前默认引擎为MMAPV1,采用linux操作系统内存映射技术,但一直饱受诟病;3.4以上版本默认存储引擎是wiredTiger,相对于MMAPV1有以下优势: a、读写操作性能更好,wiredTiger能更好的发挥多核系统的处理能力; b、MMAPV1引擎使用表级锁,当某个单表上有并发的操作,吞吐将受到限制。wiredTiger使用文档级锁,由此带来并发及吞吐量的提升; c、相比MMAPV1,wiredTIger使用了前缀压缩,更节省对内存空间的消耗; d、提供压缩算法,可大大降低对硬盘资源的消耗,节省60%以上的硬盘资源; 2、 为什么会丢失数据? wiredTiger写入模型:   注意,请求处理层跟存储引擎是不在一起的,处理层可以认为是一个"外壳",主要负责对外部请求的响应。处理层只是吧数据放到了缓存,真实数据的处理是引擎来做的。 处理层的处理:接收到外部请求,开启一个事务;将数据插入或者更新到集合,更新索引,将操作写入操作日志

MySQL学习笔记(1)

橙三吉。 提交于 2019-12-05 11:11:13
数据库概述 关系型数据库 E-R关系图 常见的数据库 MYSQL数据库服务器 MYSQL的SQL语句 登录数据库 数据库的CRUD操作 创建数据库 数据库明明规范 查看数据库 修改数据库的字符集 删除数据库 选择数据库 存储引擎 查看数据库管理系统支持的引擎 第一种 第二种 查询默认存储引擎 修改默认的存储引擎 选择存储引擎 表的CRUD操作 创建表 查看表 更新表 删除表 列的CRUD操作 列的类型 列的约束 设置外键约束 添加列 修改列 删除列 索引 创建索引 普通索引 创建表时创建普通索引 在已经存在的表上创建普通索引 通过SQL语句ALTER TABLE 创建普通索引 唯一索引 创建表时创建唯一索引 在已经存在的表中创建唯一索引 通过SQL语句ALTER TABLE创建唯一索引 全文索引 创建表时创建全文索引 在已经存在的表上创建全文索引 通过SQL语句ALTER TABLE 创建全文索引 多列索引 创建表时创建全文索引 在已经存在的表上创建全文索引 通过SQL语句ALTER TABLE 创建全文索引 删除索引 视图 创建视图 查看视图 查看视图定义信息 DESCRIBEDESC查看视图设计信息 删除视图 修改视图 触发器的操作 创建触发器 创建包含多条执行语句的触发器 查看触发器 删除触发器 数据的操作 插入数据记录 插入单条数据 插入多条数据 插入查询结果 更新数据

Mysql存储引擎

笑着哭i 提交于 2019-12-05 11:10:58
一、什么是存储引擎 关系数据库表是用于存储和组织信息的数据结构,可以将表理解为由行和列组成的表格,类似于Excel 的电子表格的形式。有的表简单,有的表复杂,有的表根本不用来存储任何长期的数据,有的表读取时非常快,但是插入数据时去很差;而我们在实际开发过程中,就可能需要各种各样的表,不同的表,就意味着存储不同类型的数据,数据的处理上也会存在着差异,那么。对于 MySQL 来说,它提供了很多种类型的存储引擎,我们可以根据对数据处理的需求,选择不同的存储引擎,从而最大限度的利用 MySQL 强大的功能。这篇博文将总结和分析各个引擎的特点,以及适用场合,并不会纠结于更深层次的东西。我的学习方法是先学会用,懂得怎么用,再去知道到底是如何能用的。下面就对 MySQL 支持的存储引擎进行简单的介绍。 二、mysql 存储引擎 1 、 mysql 5.5 之前默认 存储引擎 是 MyISAM , mysql 5.5 之后改为 InnoDB (支持事务,最常用) 2 、使用以下命令可以查看MySQL 支持的引擎 show engines; 三、mysql 常用存储引擎的特点 1 、MyISAM MyISAM 表无法处理事务,这就意味着有事务处理需求的表,不能使用MyISAM 存储引擎。 MyISAM 存储引擎特别适合在以下几种情况下使用: (1 )选择密集型的表。 MyISAM

Mysql存储引擎

最后都变了- 提交于 2019-12-05 04:42:27
Innodb 特性 支持事务处理、支持外键、支持崩溃修复能力和并发控制 从3.23.34开始支持,后面的版本默认存储引擎 数据文件 共享表空间文件:由参数innodb_data_home_dir和innodb_data_file_path定义,用于存放数据词典和日志等。 frm:存储数据表的框架结构,文件名与表名相同,每个表对应一个同名frm文件,不管MySQL运行在何种操作系统上,使用何种存储引擎,都有这个文件。 idb:使用多表空间存储方式时,用于存放表数据和索引,若使用共享表空间存储则无此文件。 MyISAM 特性 ​ 插入数据快,空间和内存使用较低; 数据文件 frm:存储数据表的框架结构,文件名与表名相同,每个表对应一个同名frm文件,不管MySQL运行在何种操作系统上,使用何种存储引擎,都有这个文件。 MYD(my data):存储表数据。 MYI(my index):存储表索引。 log:日志文件 存储格式 静态表(默认):字段都是非变长的(每个记录都是固定长度的)。存储非常迅速、容易缓存,出现故障容易恢复;占用空间通常比动态表多。 动态表:占用的空间相对较少,但是频繁的更新删除记录会产生碎片,需要定期执行optimize table或myisamchk -r命令来改善性能,而且出现故障的时候恢复比较困难。 压缩表:使用myisampack工具创建

MySQL架构

帅比萌擦擦* 提交于 2019-12-05 03:01:41
一、MySQL架构 第一层,即最上一层 ,所包含的服务并不是MySQL所独有的技术。它们都是服务于C/S程序或者是这些程序所需要的 :连接处理,身份验证,安全性等等。 第二层值得关注 。这是MySQL的核心部分。通常叫做 SQL Layer。在 MySQL据库系统处理底层数据之前的所有工作都是在这一层完成的,包括权限判断, sql解析,行计划优化, query cache 的处理以及所有内置的函数(如日期,时间,数学运算,加密)等等。各个存储引擎提供的功能都集中在这一层,如存储过程,触发器,视 图等。 第三层包括了存储引擎 。通常叫做StorEngine Layer ,也就是底层数据存取操作实现部分,由多种存储引擎共同组成。它们负责存储和获取所有存储在MySQL中的数据。就像Linux众多的文件系统 一样。每个存储引擎都有自己的优点和缺陷。服务器是通过存储引擎API来与它们交互的。这个接口隐藏 了各个存储引擎不同的地方。对于查询层尽可能的透明。这个API包含了很多底层的操作。如开始一个事 物,或者取出有特定主键的行。存储引擎不能解析SQL,互相之间也不能通信。仅仅是简单的响应服务器 的请求。 连接管理和安全 在服务器内部,每个client连接都有自己的线程。这个连接的查询都在一个单独的线程中执行。这些线程轮流运行在某一个CPU内核(多核CPU)或者CPU中。服务器缓存了线程

基于Hadoop架构下的FineBI大数据引擎技术原理

老子叫甜甜 提交于 2019-12-04 20:57:49
随着各个业务系统的不断增加,以及各业务系统数据量不断激增,业务用户的分析诉求越来越多且变化很快,IT数据支撑方的工作变得越来越复杂。 1、数据来自多个不同的系统,存在需要跨数据源分析,需要对接各种不同数据源等问题。 2、需要分析的数据体量越来越大,并且要快速获得分析结果的问题。 3、部分数据还需要二次加工处理的问题。 供数支撑方在业务系统的前端看起来基本没有任何操作,但背后的逻辑十分复杂,实现难度也很大。就像看得到的是冰山一角,看不到的是海水下绝大部分的支撑。 为了解决日益激增的大数据量分析诉求,大部分公司会通过搭建Hadoop、Spark等大数据架构,配以BI工具做数据层面的分析,来搭建这样一整套大数据分析平台。 大数据分析很关键的一个点在于性能:取数快不快,分析响应快不快,能否实时? 这个问题除了平台的底层架构,BI( 商业智能 )的运行性能也有很大相关。 大家可能普遍认为的BI,就是一个数据展现工具,在前端看起来没有太多有技术含量的操作,但背后的逻辑十分复杂,实现难度也很大。就像看得到的是冰山一角,看不到的是海水下绝大部分的支撑。 好的BI工具都有与之依赖的数据引擎,数据引擎的作用一方面是数据响应的性能(数据量、速率),还有很重要的一点是能否适应企业不同业务情况的模式/方案。比如小数据快速读取,大数据分布式并行运算,节点数据实时展现等等..... FineBI V5

InnoDB和MyISAM存储引擎的区别

≯℡__Kan透↙ 提交于 2019-12-04 20:09:30
InnoDB存储引擎 InnoDB是一个事务型的存储引擎,设计目标是处理大数量数据时提供高性能的服务,它在运行时会在内存中建立缓冲池,用于缓冲数据和索引。 InnoDB优点 1.支持事务处理、ACID事务特性; 2.实现了SQL标准的四种隔离级别; 3.支持行级锁和外键约束; 4.可以利用事务日志进行数据恢复。 InnoDB缺点 1.不支持FULLTEXT类型的索引,因为它没有保存表的行数,当使用COUNT统计时会扫描全表。 InnoDB适用场景 1.需要事务的操作; 2.更新数据需要使用行级锁; 3.大数据量读写; 4.大型互联网应用。 MyISAM存储引擎 MyISAM是MySQL默认的引擎,它的设计目标是快速读取。 MyISAM优点 1.高性能读取; 2.因为它保存了表的行数,当使用COUNT统计时不会扫描全表; MyISAM缺点 1.不支持数据库事务; 2.不支持行级锁和外键; 3.INSERT和UPDATE操作需要锁定整个表; 4.不支持故障恢复; MyISAM适用场景 1.不需要事务的操作; 2.插入、更新少,读取频繁; 3.频繁的统计计算。 来源: https://www.cnblogs.com/AllIhave/p/11881118.html

MySQL_基础知识

删除回忆录丶 提交于 2019-12-04 18:32:59
MySQL_基础知识 -----基础知识 1、什么是数据库? 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库 2、什么是关系型数据库、主键,外键,索引分别是什么? 关系型数据库是由多张能互相联接的二维行列表格组成的数据库 主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录 外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字 在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单 3、表的链接查询方式有那些,有什么区别? 交叉连接即笛卡儿乘积,是指两个关系中所有元组的任意组合 使用内连接时,如果两个表的相关字段满足连接条件,就从这两个表中提取数据并组合成新的记录 自连接是一种特殊的内连接,它是指相互连接的表在物理上为同一张表,但可以在逻辑上分为两张表 外连接是只限制一张表中的数据必须满足连接条件,而另一张表中的数据可以不满足连接条件的连接方式 4、SQL的select语句完成的执行顺序? 1、from 子句组装来自不同数据源的数据; 2、where 子句基于指定的条件对记录行进行筛选;   3、group by

从零开始入门 K8s | 深入剖析 Linux 容器

不问归期 提交于 2019-12-04 17:51:54
作者 | 唐华敏(华敏) 阿里云容器平台技术专家 本文整理自《CNCF x Alibaba 云原生技术公开课》第 15 讲。 关注“阿里巴巴云原生”公众号,回复关键词“ 入门 ”,即可下载从零入门 K8s 系列文章 PPT。 导读 :Linux 容器是一种轻量级的虚拟化技术,在共享内核的基础上,基于 namespace 和 cgroup 技术做到进程的资源隔离和限制。本文将会以 docker 为例,介绍容器镜像和容器引擎的基本知识。 容器 容器是一种轻量级的虚拟化技术,因为它跟虚拟机比起来,它少了一层 hypervisor 层。先看一下下面这张图,这张图简单描述了一个容器的启动过程。 最下面是一个磁盘,容器的镜像是存储在磁盘上面的。上层是一个容器引擎,容器引擎可以是 docker,也可以是其它的容器引擎。引擎向下发一个请求,比如说创建容器,这时候它就把磁盘上面的容器镜像运行成在宿主机上的一个进程。 对于容器来说,最重要的是怎么保证这个进程所用到的资源是被隔离和被限制住的,在 Linux 内核上面是由 cgroup 和 namespace 这两个技术来保证的。接下来以 docker 为例,详细介绍一下资源隔离和容器镜像两部分的内容。 一、资源隔离和限制 namespace namespace 是用来做资源隔离的,在 Linux 内核上有七种 namespace,docker

mysql多种存储引擎

风格不统一 提交于 2019-12-04 13:47:47
MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用: MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。 MySQL支持数个存储引擎作为对不同表的类型的处理器。MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎: · MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。MyISAM在所有MySQL配置里被支持,它是默认的存储引擎,除非你配置MySQL默认使用另外一个引擎。 · MEMORY存储引擎提供“内存中”表。MERGE存储引擎允许集合将被处理同样的MyISAM表作为一个单独的表。就像MyISAM一样,MEMORY和MERGE存储引擎处理非事务表,这两个引擎也都被默认包含在MySQL中。 注释:MEMORY存储引擎正式地被确定为HEAP引擎。 · InnoDB和BDB存储引擎提供事务安全表。BDB被包含在为支持它的操作系统发布的MySQL-Max二进制分发版里。InnoDB也默认被包括在所 有MySQL 5.1二进制分发版里,你可以按照喜好通过配置MySQL来允许或禁止任一引擎。 · EXAMPLE存储引擎是一个“存根”引擎,它不做什么。你可以用这个引擎创建表,但没有数据被存储于其中或从其中检索