首页 > 数据库技术 > 详细

mysql常用的存储引擎

时间:2020-01-09 15:53:37      阅读:77      评论:0      收藏:0      [点我收藏+]

索引分为两种,聚集索引和非聚集索引

聚集索引指的是叶子顺序和物理地址顺序一致

非聚集索引指的是只有叶子顺序是连接着的,物理地址则不一致

常用的存储引擎

mysql常用的存储引擎有Innodb和Myisam,都是基于B+树实现的。

 

Innodb

1.Innodb默认聚集索引,因此他的索引文件就是包含数据文件内容,索引叶子节点直接保存数据(.idb数据文件)

(1).主键就是聚集索引

(2).在没有主键的情况下会将唯一非空索引作为聚集索引

(3).如果都没有的情况下就会在内部生成隐式主键作为聚集索引,这个列是一个6字节(48位)的整数作为聚集索引

2.Innodb默认是行级锁,行级锁是基于索引实现的,因此SQL中如果没有使用到索引的情况下就不会使用行级锁,而会换为使用表级锁,从而导致性能下降

3.支持事务

4.需要维护MVCC一致性(多版本并发控制),因此多出来了维护成本

 

 Myisam

Myisam属于非聚集索引,因此他的数据文件内容和索引文件是分离的,索引叶子节点保存数据指针(.myd数据文件,.myi索引文件)

1.不支持事务,崩溃后无法安全恢复

2.比Innodb的查询速度更快

3.Myisam使用的是表级锁,在同时有读和写的操作时候,即使读锁比写锁先进到锁等待队列,写锁也会先插入到读锁的前面先进行写的操作,因此在有大量写的操作时,Myisam可能会造成读取数据大量在阻塞的情况

 

技术分享图片

 

mysql常用的存储引擎

原文:https://www.cnblogs.com/nicori/p/12170748.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!