9、可以把数据文件和索引文件放在不同目录
10、每个字符列可以有不同的字符集
11、有VARCHAR的表可以固定或动态记录长度
12、VARCHAR和CHAR列可以多达64KB
使用MyISAM引擎创建数据库 , 将产生3个文件 。文件的名字以表名字开始 , 扩展名之处文件类型:frm文件存储表定义、数据文件的扩展名为.MYD(MYData)、索引文件的扩展名时.MYI(MYIndex)
MEMORY存储引擎
MEMORY存储引擎将表中的数据存储到内存中 , 未查询和引用其他表数据提供快速访问 。MEMORY主要特性有:
1、MEMORY表的每个表可以有多达32个索引 , 每个索引16列 , 以及500字节的最大键长度
2、MEMORY存储引擎执行HASH和BTREE缩影
3、可以在一个MEMORY表中有非唯一键值
4、MEMORY表使用一个固定的记录长度格式
5、MEMORY不支持BLOB或TEXT列
6、MEMORY支持AUTO_INCREMENT列和对可包含NULL值的列的索引
7、MEMORY表在所由客户端之间共享(就像其他任何非TEMPORARY表)
8、MEMORY表内存被存储在内存中 , 内存是MEMORY表和服务器在查询处理时的空闲中 , 创建的内部表共享
9、当不再需要MEMORY表的内容时 , 要释放被MEMORY表使用的内存 , 应该执行DELETE FROM或TRUNCATE TABLE , 或者删除整个表(使用DROP TABLE)
存储引擎的选择
不同的存储引擎都有各自的特点 , 以适应不同的需求 , 如下表所示:

如果要提供提交、回滚、崩溃恢复能力的事物安全(ACID兼容)能力 , 并要求实现并发控制 , InnoDB是一个好的选择
如果数据表主要用来插入和查询记录 , 则MyISAM引擎能提供较高的处理效率
如果只是临时存放数据 , 数据量不大 , 并且不需要较高的数据安全性 , 可以选择将数据保存在内存中的Memory引擎 , MySQL中使用该引擎作为临时表 , 存放查询的中间结果
如果只有INSERT和SELECT操作 , 可以选择Archive , Archive支持高并发的插入操作 , 但是本身不是事务安全的 。Archive非常适合存储归档数据 , 如记录日志信息可以使用Archive
使用哪一种引擎需要灵活选择 , 一个数据库中多个表可以使用不同引擎以满足各种性能和实际需求 , 使用合适的存储引擎 , 将会提高整个数据库的性能
喜欢这篇文章的可以点个赞 , 欢迎大家留言评论 , 记得关注我 , 每天持续更新技术干货、职场趣事、海量面试资料等等
如果有什么问题可以私信我 , 还有一些关于JAVA资料都可以私信问我要 。
还有一些互联网公司java程序员面试涉及到的绝大部分面试题和答案做成了文档和架构视频资料还有完整高清的java进阶架构学习思维导图免费分享给大家(包括Dubbo、redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术资料) , 希望能帮助到您面试前的复习且找到一个好的工作 , 也节省大家在网上搜索资料的时间来学习 。
【mysql中四种存储引擎的区别和选择】
推荐阅读
- 比较:mysql中的truncate、delete与drop
- 中国文化的精髓--茶具
- 探讨紫砂茶具中的紫砂文化
- 路由器常用的四种桥接方式
- 如何在小程序中盈利?
- 封神演义中的元始天尊的师傅是谁 封神榜元始天尊和通天教主
- 基于 MySQL 的 EMQ X Auth & ACL
- Redis的链表结构
- 3名初中生女生从18楼坠下 18米高楼女孩意外坠楼
- MySQL使用WHERE子句来过滤结果集中的行记录
