首页 > 数据库技术 > 详细

MySQL优化系列3-存储引擎

时间:2020-05-06 19:43:22      阅读:85      评论:0      收藏:0      [点我收藏+]

简介

  1. 插拔式存储引擎(pluggable Storage Engines)这是mysql特有的
  2. 存储引擎是指定在表之上的,即一个库中的每一个表都可以指定独立的存储引擎
  3. 每一种存储引擎都会生成一个frm文件(mysql8取消了该文件)

Innodb

5.5.8版本后的默认存储引擎,之前默认为MyIsam
支持ACIDs事务
支持行锁,支持外键
聚集方式存储数据,每张表的存储都是按照主键的顺序进行存放(如果没有显示的指定主键,会隐式的为每一行生成一个6 byte的rowId作为主键)
不支持中文全文索引

MyIsam

不支持事务
表锁
支持全文索引
5.5.8版本之前默认存储引擎,临时表也会用到Myisam存储引擎
myisam存储引擎的缓存只缓存索引文件,而不缓存数据文件(mysql8缓存模块去除)
select count(*) from table 不需要扫表

CSV存储引擎

不能定义索引、列定义必须为NOT NULL,不能设置自增列->不适用大表或者数据的在线处理
CSV数据的存储用,隔开,可以直接编辑CSV文件进行数据的编排->数据安全性低
编辑数据文件后,执行flush table xxx生效
应用场景:
数据的快速导入导出
表格直接转换成csv

Archive 存储引擎

只支持insert和select操作
5.1版本后支持索引,只允许自增ID建立索引
使用zlib算法压缩数据进行存储,数据存储为ARZ文件格式
行级锁
不支持事务
数据占用磁盘少
应用场景:
日志系统
大量的设备数据采集

Memory存储引擎

数据存放到内存中,IO效率要比其他引擎高
数据库重启或崩溃数据丢失,内存数据表默认只有16M
经常用在临时表中
支持hash索引,Btree索引,默认使用哈希索引,而不是B+Tree
只支持表锁
不支持TEXT、BLOB、存储varchar时是按照char的方式进行的(耗费内存)
应用场景:
等值查找热度较高数据
查询结果内存中的计算,大多数都是采用这中存储引擎作为临时表存储需要计算的数据

 

各种索引对比:https://dev.mysql.com/doc/refman/5.7/en/innodb-introduction.html

MySQL优化系列3-存储引擎

原文:https://www.cnblogs.com/zh-ch/p/12837634.html

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