最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

MySQL-存储引擎简析_MySQL

来源:懂视网 责编:小采 时间:2020-11-09 18:20:33
文档

MySQL-存储引擎简析_MySQL

MySQL-存储引擎简析_MySQL:bitsCN.com Mysql逻辑架构视图 主要存储引擎: 引擎 Mysql版本 事务 锁粒度 主要引用 忌用InnoDB 全部 支持 支持Mvcc行级锁 事务处理 MyISAM 全部 不支持 支持并发插入的表锁 Select,insert高负载 读写并重的场合MyISAM Merge 全部 不支持
推荐度:
导读MySQL-存储引擎简析_MySQL:bitsCN.com Mysql逻辑架构视图 主要存储引擎: 引擎 Mysql版本 事务 锁粒度 主要引用 忌用InnoDB 全部 支持 支持Mvcc行级锁 事务处理 MyISAM 全部 不支持 支持并发插入的表锁 Select,insert高负载 读写并重的场合MyISAM Merge 全部 不支持
bitsCN.com
Mysql逻辑架构视图 主要存储引擎: 引擎 Mysql版本 事务 锁粒度 主要引用 忌用InnoDB 全部 支持 支持Mvcc行级锁 事务处理 MyISAM 全部 不支持 支持并发插入的表锁 Select,insert高负载 读写并重的场合MyISAM Merge 全部 不支持 支持并发插入的表锁 分段归档, 许多全局查找Memory(HEAP) 全部 不支持 表锁 中间计算,静态数据查证 大型数据集,持久性存储,重启后数据丢失Falcon 6.0 支持 支持Mvcc行级锁 事务处理 Archive 4.1 支持 支持Mvcc行级锁 日志记录,聚合分析,只支持insert,select操作 需要随机读取 删除CSV 4.1 不支持 表锁 日志记录,大规模加载外部数据 需要随机读取,索引等NDB Cluster 5.0 支持 行级锁 高可用集群 典型引用Maria 6.x 支持 支持mvcc行级锁 替代MyISAM 可以通过show table status like '表名称'/G 来查看表的信息 锁粒度: 1.表锁 (Table Lock) 当一个用户对表进行写操作(新增,删除,修改), 会获得一个写锁,写锁会禁止其他用户的读写操作,当无人做写操作时,其他用户才能获得读锁,读锁与读锁之间不会冲突。表锁是最小锁策略,其性能良好,表锁由Mysql本身 和 存储引擎实现。 2.行级锁(Row Lock) 行级锁可以支持最大的并发处理,同时也带来了最大锁开销,行级锁在InnoDB,Falcon存储引擎出以实现。 行级锁由存储引擎实现,而不是Mysql服务器本身。 3.MVCC行级锁 MVCC 是一种多版本并发控制(Multiversion Concurrency Control)的技术,MVCC不是mysql独有的技术,Oracle,PostgreSQL等其他数据库也使用了该技术。 每种存储引擎实现MVCC的方式是不同的,例如乐观并发控制,悲观并发控制,下面以Innodb的实现方式 说说其简要工作原理: Innodb通过为每个数据行增加两个隐士的字段来实现MVCC,这两个隐士字段记录了行的创建的时间,以及过期时间(删除时间),每一行都存储了事件发生时的系统版本号,用来替代事件发生时的实际时间。每一次开启一个新的事务时,版本号都会递增,每个事务都会保存它在开始时的“系统版本”的记录,而每个查询都会根据事务的版本号,检查每行数据的版本号。 SELECT Innodb 检查每行数据,确保它们符合两个标准 *Innodb只查找版本号小于或等于当前版本号的数据,这确保了当前事务读取的数据行都是在事务开始前已存在,或者是当前事务创建或修改的行。 *数据行的删除标识必须是未定义,或者是大于事务版本的,这确保了查询出来的数据在事务开始时是未被删除的。 INSERT Innodb为新增的数据行记录当前版本号 DELETE 修改要删除行的过期时间标识 UPDATE 为每个需要更新的行建立一个新的行的拷贝,并为新的行拷贝记录当前系统版本。也为更新前的数行记录系统版本号,作为旧行的删除版本标识。保存这些额外记录的好处是大多数并发操作都不必申请枷锁,这使读操作变得更快,因为读操作是要选取符合标准的数据行即可,这种方式的缺点是:存储引擎必须为每行数据存储更多的额外数据,浪费空间,做更多的检查工作,以及整理一些额外的数据带来的开销。 加锁策略 并发 系统开销 引擎表级加锁 最低 最低 MyISAM,Merge,MyISAM Merge行级加锁 高 高 NDB Cluster支持MVCC的行级加锁 最高 最高 InnoDB,Falcon选择合适的引擎: 1.事务 如果应用需要事务处理操作,Innodb仍是最稳定的,如果不需要事务,主要操作是处理一些SELECT和INSERT操作或专用日志记录,那么MYISAM是一个不错的选择。 2.并发 3.备份 4.崩溃后恢复 bitsCN.com

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

MySQL-存储引擎简析_MySQL

MySQL-存储引擎简析_MySQL:bitsCN.com Mysql逻辑架构视图 主要存储引擎: 引擎 Mysql版本 事务 锁粒度 主要引用 忌用InnoDB 全部 支持 支持Mvcc行级锁 事务处理 MyISAM 全部 不支持 支持并发插入的表锁 Select,insert高负载 读写并重的场合MyISAM Merge 全部 不支持
推荐度:
标签: 存储 引擎
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top