MySQL中存储引擎InnoDB与MyISAM的详解
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MySQL中存储引擎InnoDB与MyISAM的详解,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1782字,纯文字阅读大概需要3分钟。
内容图文
![MySQL中存储引擎InnoDB与MyISAM的详解](/upload/InfoBanner/zyjiaocheng/538/3d5611aa9d214d5dab8cd4a8e5de6a0e.jpg)
MySQL5.5中InnoDB成为默认的存储引擎。InnoDB是事务型存储引擎,被设计用来处理大量的短期事务。它的性能和自动崩溃恢复特性,使得它在非事务场景中也很流行。
所以可以这么说:“除非需要用到某些InnoDB不具备的特性,并且没有其他办法可以替代,否则都应该优先选择它”。
InnoDB的数据存储在表空间中,它可以将每个表的数据和索引存放在单独文件中。
InnoDB采用MVCC来支持高并发,并且实现了四个标准的隔离级别。默认级别是REPEATABLE READ(可重复读),并且通过间隙锁策略防止幻读的出现。
InnoDB表示基于聚簇索引建立的,聚簇索引对主键的查询有很高的性能。
InnoDB支持真正的热备份,可以通过XtraBackup工具实现。
InnoDB内部做了很多优化,包括从磁盘读取数据时采用的可预测性预读,能够自动在内存中创建hash索引,能够加速插入操作的插入缓冲区等。
应用场景:
需要在线热备份
数据量大,需要系统崩溃后快速恢复。比如订单处理。
2.MyISAM存储引擎
MySQL5.1之前,MyISAM为默认的存储引擎。MyISAM不支持事务和行级锁且最大缺陷就是崩溃后无法安全恢复。
.MyISAM将表存储在两个文件中:数据文件和索引文件。
MyISAM对整张表加锁,读取时对需要的所有表加共享锁,写入时加排它锁。但是在表有读取查询时,也可以往表中插入新的记录(并发插入)
MyISAM可以手工或者自动执行检查修复操作,但是可能导致数据丢失而且修复操作非常慢。
MyISAM表中BLOB和TEXT等长字段也可以基于前500个字符创建索引。MyISAM也支持全文索引,这是基于分词创建的索引,可以支持复杂的查询。
MyISAM在创建表时候如果指定DELAY_KEY_WRITE(延迟更新索引键),在每次修改执行完成时会将索引写入内存中的键缓冲区,挡在清理键缓冲区或者关闭表时才会将对应索 引块写入磁盘,这种方式可以极大提升写入性能。但是在数据库或主机崩溃时索引会损坏。
应用场景:
主要是SELECT和INSERT操作的场景,比如一般日志型的应用。
以上就是MySQL中存储引擎InnoDB与MyISAM的详解的详细内容,更多请关注Gxl网其它相关文章!
内容总结
以上是互联网集市为您收集整理的MySQL中存储引擎InnoDB与MyISAM的详解全部内容,希望文章能够帮你解决MySQL中存储引擎InnoDB与MyISAM的详解所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。