mysql中用的最多的两种存储引擎就是myisam和inndb,其中myisam是5.1版本之前的默认存储引擎,innodb是5.1版本之后的默认存储引擎。另外常见的存储引擎还有memory、merge、ndb等。下面我们简单看一下她们的各有什么特点。
一、myisam
myisam的特点是查询速度快、存储空间小,原因是在磁盘上分成三个文件存储:.frm(存储表定义),.myd(mydata,存储数据),.myi(myindex,存储索引),select count(*) from table时,避免了全表扫描。但是myisam不支持事务,也不支持外键,写入时是表锁,所以适合查询多、写入少的业务场景。
二、innodb
innodb,最大的特点就是支持事务和行锁,是现在mysql的默认存储引擎。对事务和写并发的支持使inndb成为互联网公司最常使用的存储引擎。
1、事务,支持acid的事务,支持事务的四种隔离级别。
2、行锁,支持行级锁及外键约束,所以在可以支持写并发。
3、全表扫描,select count(*) from table时会进行全表扫描,效率低于myisam。
三、memory
memory是一种特殊的存储引擎,特点是使用存储在内存中的内容来创建表,并且数据全部放在内存中。每个基于memory存储引擎的表实际对应一个磁盘文件。该文件的文件名与表名相同,类型为frm类型。该文件中只存储表的结构,而其数据文件,都是存储在内存中,这样有利于数据的快速处理,提高整个表的效率。需要注意的是,服务器需要有足够的内存来维持memory存储引擎的表的使用。如果不需要了,可以释放内存,甚至删除不需要的表。
memory默认使用哈希索引,速度比使用b树索引快。当然如果你想用b型树索引,可以在创建索引时指定。注意,memory用到的很少,因为它是把数据存到内存中,如果内存出现异常就会影响数据。如果重启或者关机,所有数据都会消失。因此,基于memory的表的生命周期很短,一般是一次性的。
综上,我们可以看出这三种存储引擎的特点。1、innodb:支持事务处理,支持外键,支持崩溃修复能力和并发控制。2、myisam:占用空间小,查询速度快。缺点是不支持事务的完整性和并发性。3、memory:所有的数据都在内存中,处理速度快,但是安全性不高。对表的大小有要求,依赖内存,不能建立太大的表。
微软工程师透露Win10 21H1正式版6月推送 21H2中会有大量新功能
国产处理器超快进展!龙芯新产品发布
中颖电子发布2018年业绩预告 家电芯片营收占比最大锂电池管理芯片的销售同比增速最快
同步器的作用
首期交付并不代表已经在市场站稳脚跟 小鹏汽车还有几场硬仗要打
关于mysql存储引擎你知道多少
在Linux下touch的9个命令示例
鹏辉能源第四季度订单充足,加快产能扩张步伐
在线土壤墒情监测系统的特点是什么
荣耀8怎么样?华为荣耀8评测:荣耀8华为最美旗舰降价500,外观、配置、拍照、续航给力
高通预计全球5G智能手机从从2020年起出货增长率将达125%
MCU产业景气状况如何?
上海控安SmartRocket系列:嵌入式软件智能化测试工具
人脸测温健康码核验一体机助力李朗国际珠宝园高效核验粤康码、深i您
日本东京威力科创等将停止为黑名单中企供货 台企表示影响较少
一加手机4概念设计曝光:配8G运存 骁龙835处理器 无边框设计
提升数据中心网络效率:100G QSFP28 LR4光模块的优势分析
石英晶体好坏的判断,Crystal Detector
鉴相器 ,鉴相器的分类和原理是什么?
华尔街交易公司Jane Street将计划进军加密市场