当前位置:   article > 正文

mysql调优-存储引擎介绍

mysql调优-存储引擎介绍

mysql插拔式的存储引擎

存储引擎的介绍

1.插拔式的插件方式

2.存储引擎是指定在表之上的,即一个库中的每一个表都可以指定专用的存储引擎。

3,不管表采用什么样的存储引擎,都会在数据区,产生对应的一个frm文件(表结构定义描述文件)

 

CSV存储引擎

å¨è¿éæå¥å¾çæè¿°

数据存储以CSV文件

特点:

1、不能定义没有索引、列定义必须为NOT NULL、不能设置自增列-->不适用大表或者数据的在线处理

2、CSV数据的存储用,隔开,可直接编辑CSV文件进行数据的编排-->数据安全性低

注:编辑之后,要生效使用flush table XXX 命令

应用场景:

数据的快速导入导出

表格直接转换成CSV

 

Archive存储引擎

压缩协议进行数据的存储,数据存储为ARZ文件格式

特点:

只支持insert和select两种操作

只允许自增ID列建立索引

行级锁

不支持事务

数据占用磁盘少

应用场景:

日志系统

大量的设备数据采集

 

Memory存储引擎

数据都是存储在内存中的,IO效率要比其它引擎高很多,服务重启数据丢失,内存数据表默认只有16M

特点:

支持hash索引,Btree索引,默认hash(查找复杂度0(1)),字段长度都是固定长度varchar(32)=char(32)

不支持大数据存储类型字段如blog,text表级锁

应用场景:

等值查找热度较高数据

查询结果内存中的计算,大多数都是采用这种存储引擎作为临时表存储需计算的数据

 

Myisam存储引擎

mysql5.5版本之前的默认存储引擎较多的系统表还是使用这个存储引擎,系统临时表也会用到myisam存储引擎

特点:

a,select count(*) from table 无需进行数据的扫描,他有一个专门计算数据的函数,InnoDB需要一行行的扫描,计算出来。

b,数据(MYD)和索引(MYI)分开存储

c,表级锁

d,不支持事务

myisam实现B+树的体现

å¨è¿éæå¥å¾çæè¿°

数据和索引分别存储,不管用哪个存储引擎,都会生成一个.frm文件(表定义文件),数据保存在myd文件,索引保存在myi文件里面。在myisam里面,叶子节点的数据区保存的是.myd的内存地址,在.myi通过索引找到这条数据的内存地址,再通过这个地址去.myd里面找到对应的数据。

https://mp.weixin.qq.com/s/FUXPXKfKyjxAvMUFHZm9UQ《1分钟了解MyISAM与InnoDB的索引差异》这篇文章全面

 

Innodb存储引擎

Mysql5.5及以后版本的默认存储引擎

Key Advantages: Its DML operations follow the ACID model [事务ACID] Row-level locking[行级锁] InnoDB tables arrange your data on disk to optimize queries based on primary keys[聚集索引(主键索引)方式进行数据存储] To maintain data integrity, InnoDB supports FOREIGN KEY constraints[支持外键关系保证数据完整性]

å¨è¿éæå¥å¾çæè¿°

只有.ibd和.frm两个文件,他的index和数据放在了一起,在InnoDB中,以主键为索引来组织数据的存储,如果没有明确指定一个主键(ID)索引,他会默认的生成一个隐藏的6byte的Int型的索引来作为他的主键索引,只是这个隐式的索引看不到而已。
注意:MySQL每个版本都是略微差异,比如在MySQL5.7之前都有.frm文件,而在mysql8.0之后就将该文件移除掉了。

https://dev.mysql.com/doc/refman/5.7/en/innodb-introduction.html《mysql的Innodb官网介绍》

存储引擎的对比

 

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/595474
推荐阅读
相关标签
  

闽ICP备14008679号