0

0

MySQL中存储引擎InnoDB与MyISAM的详解

黄舟

黄舟

发布时间:2017-09-21 11:05:15

|

1372人浏览过

|

来源于php中文网

原创

1.innodb存储引擎

   MySQL5.5中InnoDB成为默认的存储引擎InnoDB是事务型存储引擎,被设计用来处理大量的短期事务。它的性能和自动崩溃恢复特性,使得它在非事务场景中也很流行。

   所以可以这么说:“除非需要用到某些InnoDB不具备的特性,并且没有其他办法可以替代,否则都应该优先选择它”。

  InnoDB的数据存储在表空间中,它可以将每个表的数据和索引存放在单独文件中。

  InnoDB采用MVCC来支持高并发,并且实现了四个标准的隔离级别。默认级别是REPEATABLE READ(可重复读),并且通过间隙锁策略防止幻读的出现。

  InnoDB表示基于聚簇索引建立的,聚簇索引对主键的查询有很高的性能。

  InnoDB支持真正的热备份,可以通过XtraBackup工具实现。

  InnoDB内部做了很多优化,包括从磁盘读取数据时采用的可预测性预读,能够自动在内存中创建hash索引,能够加速插入操作的插入缓冲区等。

  应用场景

                 需要在线热备份

       数据量大,需要系统崩溃后快速恢复。比如订单处理。

2.MyISAM存储引擎

GitHub Copilot
GitHub Copilot

GitHub AI编程工具,实时编程建议

下载

MySQL5.1之前,MyISAM为默认的存储引擎。MyISAM不支持事务和行级锁且最大缺陷就是崩溃后无法安全恢复。

.MyISAM将表存储在两个文件中:数据文件和索引文件。

 MyISAM对整张表加锁,读取时对需要的所有表加共享锁,写入时加排它锁。但是在表有读取查询时,也可以往表中插入新的记录(并发插入)

 MyISAM可以手工或者自动执行检查修复操作,但是可能导致数据丢失而且修复操作非常慢。

 MyISAM表中BLOB和TEXT等长字段也可以基于前500个字符创建索引。MyISAM也支持全文索引,这是基于分词创建的索引,可以支持复杂的查询。

 MyISAM在创建表时候如果指定DELAY_KEY_WRITE(延迟更新索引键),在每次修改执行完成时会将索引写入内存中的键缓冲区,挡在清理键缓冲区或者关闭表时才会将对应索  引块写入磁盘,这种方式可以极大提升写入性能。但是在数据库或主机崩溃时索引会损坏。

 应用场景

             主要是SELECT和INSERT操作的场景,比如一般日志型的应用。

           

相关专题

更多
c++主流开发框架汇总
c++主流开发框架汇总

本专题整合了c++开发框架推荐,阅读专题下面的文章了解更多详细内容。

79

2026.01.09

c++框架学习教程汇总
c++框架学习教程汇总

本专题整合了c++框架学习教程汇总,阅读专题下面的文章了解更多详细内容。

46

2026.01.09

学python好用的网站推荐
学python好用的网站推荐

本专题整合了python学习教程汇总,阅读专题下面的文章了解更多详细内容。

121

2026.01.09

学python网站汇总
学python网站汇总

本专题整合了学python网站汇总,阅读专题下面的文章了解更多详细内容。

12

2026.01.09

python学习网站
python学习网站

本专题整合了python学习相关推荐汇总,阅读专题下面的文章了解更多详细内容。

15

2026.01.09

俄罗斯手机浏览器地址汇总
俄罗斯手机浏览器地址汇总

汇总俄罗斯Yandex手机浏览器官方网址入口,涵盖国际版与俄语版,适配移动端访问,一键直达搜索、地图、新闻等核心服务。

71

2026.01.09

漫蛙稳定版地址大全
漫蛙稳定版地址大全

漫蛙稳定版地址大全汇总最新可用入口,包含漫蛙manwa漫画防走失官网链接,确保用户随时畅读海量正版漫画资源,建议收藏备用,避免因域名变动无法访问。

370

2026.01.09

php学习网站大全
php学习网站大全

精选多个优质PHP入门学习网站,涵盖教程、实战与文档,适合零基础到进阶开发者,助你高效掌握PHP编程。

45

2026.01.09

php网站搭建教程大全
php网站搭建教程大全

本合集专为零基础用户打造,涵盖PHP网站搭建全流程,从环境配置到实战开发,免费、易懂、系统化,助你快速入门建站!

12

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.7万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 785人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号