[mysql 详解]mysql 存储引擎 | mysql 技术论坛-380玩彩网官网入口
分类
show engines; (查看全部存储引擎)
- innodb
- mrg_myisam
- memory
- blackhole
- myisam
- csv
- archive
- performance_schema
- federated
myisam
使用myisam引擎创建数据库,将产生3个文件。文件的名字以表名字开始,扩展名之处文件类型:frm文件存储表定义、数据文件的扩展名为.myd(mydata)、索引文件的扩展名时.myi(myindex)
- 不支持外键、事务、行锁
- 支持全文检索(fulltext)
- 被大文件系统、操作系统支持
- null允许在索引列中
- 数据文件和索引文件可以放在不同目录
- 每个字符列可以用不能的字符集
- 每个myisam类型的表都有一个auto_increment的内部列,当insert和update操作的时候该列被更新,同时auto_increment列将被刷新
插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择myisam能实现处理高效率。如果应用的完整性、并发性要求比 较低,也可以使用。
innodb
使用 innodb存储引擎 mysql将在数据目录下创建一个名为 ibdata1 的10mb大小的自动扩展数据文件,以及两个名为ib_logfile0和ib_logfile1的5mb大小的日志文件
- 支持事务(acid)
- 支持外键
- 支持行锁
- 存储行数
只有在where的主键有效,非主键的where锁全表
- 需要更多的内存和储存,
主内存中建立其专用的缓冲池用于高速缓冲数据和索引
如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择innodb有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择innodb,因为支持事务的提交(commit)和回滚(rollback)
myisam 和innodb的区别
- 存储结构
- 存储空间
- 可移植性、备份及恢复
- 事务安全
- auto_increment
- 查询效率
- 行树查询
- 锁
- 外键
- fulltext全文索引
其他
事务(acid)
- a 原子性
- c 一致性
- i 独立性
- d 持久性
参考
本作品采用《cc 协议》,转载必须注明作者和本文链接