1 MySQL存储引擎的概念
- MySQL中数据用各种不同的技术存储在文件(或内存)中,这些技术都使用不同的存储机制、索引技巧,锁定水平,并且最终提供广泛的、不同的功能,通过选择不同的技术,能够获得额外的速度或功能,从而改善整体功能。
- SQLServer和Oracle都使用了一种存储引擎,而MySQL有多种存储引擎。
- 所谓的存储引擎,其实就是表的类型
2 查询MySQL中支持的存储引擎
show engines;
show engines \g
show variables like ‘have%‘;
show variables like ‘table_type‘; //查看表的存储引擎
- 默认的存储引擎:InnoDB
3 常见三种存储引擎
3.1 InnoDB
- 只有一种文件类型:frm
- 支持自动增长列(auto_increment)
- 自增长字段:如果手动赋值的值为0,null或不手动赋值,其会自动增加一个step,如果手动赋值一个以前从来没有出现过的值,则会赋值成功
- 支持外键(foreign key)
- 子表和主表的变化是相关联的
- 优点:提供良好的事务管理、崩溃修复能力和并发控制
- 是MySQL中唯一支持事务控制的存储引擎
- InnoDB自我恢复的时间短,MyISAM也有自我恢复,时间比较长。
- 缺点:其读写效率稍差,占用的数据空间相对比较大
- 自增长字段:如果手动赋值的值为0,null或不手动赋值,其会自动增加一个step,如果手动赋值一个以前从来没有出现过的值,则会赋值成功
- 子表和主表的变化是相关联的
- 是MySQL中唯一支持事务控制的存储引擎
- InnoDB自我恢复的时间短,MyISAM也有自我恢复,时间比较长。
3.2 MyISAM
文件类型
- frm:存储表的结构
- myd:存储数据
- myi:存储索引
存储格式
- 静态:字段类型类型为类似char,访问速度比较快
- 动态:字段的数据类型为类似varchar
- 压缩:只针对只读的表,可以让其压缩,这样可以提高性能。
优点:战胜空间小,处理速度快
缺点:不支持事务的完整性和并发性
3.3 MEMORY
- MEMORY存储引擎是MySQL中的一类特殊的存储引擎。其使用存储在内存中的内容来创建表,而且所有数据也存储在内存中
- 优点:片是速度非常快
- 缺点:其数据易丢失,生命周期短
4 如何选择存储引擎
- InnoDB存储引擎:用于事务处理应用程序,具有众多特性,包括ACID事务支持,支持外键,同时支持崩溃修复能力和并发控制。适用于对事务完整性要求比较高,要求并发控制,需要频繁进行更新、删除操作的数据库
- MyISAM存储引擎:主要用于非事务表,它提高调整存储和检索,以及全文搜索能力。适用于表主要用插入新记录和读出记录在案,应用完整性、并发性要求很低
- MEMORY存储引擎:提供“内存”表,所有数据都在内在中,数据处理速度快,但安全性不高。适用于需要很快读写速度,对数据的安全性要求较低,使用相对较小的数据库表
5 如何指定表的存储引擎
捐赠我们
良师益友工作室一直在致力于帮助编程爱好更加快速方便地学习编程,如果您对我们的成果表示认同并且觉得对你有所帮助,欢迎您对我们捐赠^_^。
时间: 2024-10-10 19:24:03