问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Mysql数据库3种存储引擎有什么区别?

发布网友 发布时间:2022-04-22 00:02

我来回答

1个回答

热心网友 时间:2023-09-14 01:25

Mysql数据库3种存储(MyISAM、MEMORY、InnoDB)引擎区别:

1、Myisam是Mysql的默认存储引擎,当create创建新表时,未指定新表的存储引擎时,默认使用Myisam。MEMORY、InnoDB不是默认存储引擎。

2、InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比Myisam的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。

Mysql数据库3种存储(MyISAM、MEMORY、InnoDB)区别对比:

1、MyISAM
它不支持事务,也不支持外键,尤其是访问速度快,对事务完整性没有要求或者以SELECT、INSERT为主的应用基本都可以使用这个引擎来创建表。

数据文件和索引文件可以放置在不同的目录,平均分配IO,获取更快的速度。要指定数据文件和索引文件的路径,需要在创建表的时候通过DATA DIRECTORY和INDEX DIRECTORY语句指定,文件路径需要使用绝对路径。

2、MEMORY

memory使用存在内存中的内容来创建表。每个MEMORY表实际对应一个磁盘文件,格式是.frm。MEMORY类型的表访问非常快,因为它到数据是放在内存中的,并且默认使用HASH索引,但是一旦服务器关闭,表中的数据就会丢失,但表还会继续存在。

默认情况下,memory数据表使用散列索引,利用这种索引进行“相等比较”非常快,但是对“范围比较”的速度就慢多了。因此,散列索引值适合使用在"="和"<=>"的操作符中,不适合使用在"<"或">"操作符中,也同样不适合用在order by字句里。如果确实要使用"<"或">"或betwen操作符,可以使用btree索引来加快速度。

存储在MEMORY数据表里的数据行使用的是长度不变的格式,因此加快处理速度,这意味着不能使用BLOB和TEXT这样的长度可变的数据类型。VARCHAR是一种长度可变的类型,但因为它在MySQL内部当作长度固定不变的CHAR类型,所以可以使用。

3、InnoDB
InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比MyISAM的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。

(1)自动增长列:

InnoDB表的自动增长列可以手工插入,但是插入的如果是空或0,则实际插入到则是自动增长后到值。可以通过"ALTER TABLE...AUTO_INCREMENT=n;"语句强制设置自动增长值的起始值,默认为1,但是该强制到默认值是保存在内存中,数据库重启后该值将会丢失。

可以使用LAST_INSERT_ID()查询当前线程最后插入记录使用的值。如果一次插入多条记录,那么返回的是第一条记录使用的自动增长值。对于InnoDB表,自动增长列必须是索引。如果是组合索引,也必须是组合索引的第一列,但是对于MyISAM表,自动增长列可以是组合索引的其他列,这样插入记录后,自动增长列是按照组合索引到前面几列排序后递增的。

(2)外键约束:
MySQL支持外键的存储引擎只有InnoDB,在创建外键的时候,父表必须有对应的索引,子表在创建外键的时候也会自动创建对应的索引。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
如何通过故事和绘画激发孩子的想象力? 怎么提高孩子在绘画方面的想象力? 哪个牌子的素描纸最好用 1 60g的素描纸等于多少A? 一条高速公路的路基长100千米宽50米这条公路路基占地面积大约多少公顷合... 选择四川大学的原因是什么? 成都哪个学校留学生多 如何验证IPVS是否安装正常 杭州市十三中和杭外初中是考试进入的还是划片进入的?如果是划片需要户口... 怎么关闭余额宝?具体操作步骤是什么? 请问1990年阴历3月17日出生的属于什么星座? win11应用商店更新一直显示准备中 mysql存储引擎类型有哪些 1990年3月17日9点45分出生是什么命 Mysql中什么是存储引擎 我的生日是1990年农历3月17号中午12点左右.高手帮... MySQL存储引擎是什么? 为什么win11虚拟机应用商店闪退 1990年3月17日出生的人是什么性格? mysql数据库支持的存储引擎有哪些?默认的存储引擎... 求助!Windows 11无法通过应用商店安装/更新任何应... mysql到底用哪一款存储引擎 win11应用商店代码0X00000005 mysql选择哪个存储引擎比较合适 lenovoideapadyoga11加载不出应用商店 重大事故车手续全部办完了请问可以过户吗? 事故报废车可以过户吗 事故残值车能过户吗 发生交通事故车辆能办理过户吗 事故车如何过户 win11联想软件商店下载不了东西 1990年3月17日,早晨4、5点出生的,怎么算生辰八字? mysql几种存储引擎介绍 1990年3月17日10时出生的男,阳历,请大师算八字事... win11应用和浏览器控制有个感叹号,点击只出现微软商店 期末自我评价 100字 第二人称(有优点有缺点,不要... Mysql 应该选择什么引擎 我是1990年农历三月十七出生,我是什么星座啊?杯... Win11微软应用商店下载的软件图标有蓝色的框 Mysql存储引擎是怎么回事? 我的Win11微软应用商店怎么接不到亚马逊应用商店? 我1990年阳历3月17日出生 运程如何? MySQL存储引擎是什么 90年阴历3月17日12点40出生的男人命运如何 Windows8.1应用商店出现下图,这种情况怎么办? 求高人帮算算命,1990年3月17子时的 。 男. 急... Win10开机总弹出“Windows无法访问指定设备、路径或... 期末了,要写自我评价,请各位大神帮帮忙,要100字... 1990年的农历3月17出生的是什么星座 存储引擎的Mysql存储引擎