• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > MySQL两大存储引擎InnoDB与MyISAM的区别

MySQL两大存储引擎InnoDB与MyISAM的区别

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了InnoDB,MySQL,引擎等相关知识,希望本文的分享对您有所帮助
1.InnoDB存储引擎

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的区别的详细内容,更多请关注微课江湖其它相关文章!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 探讨:innodb与myisam在存储上有何特点和区别
  • 深入MySQL存储引擎比较的详解
  • 浅谈MySQL存储引擎选择 InnoDB与MyISAM的优缺点分析
  • 深入探讨:MySQL数据库MyISAM与InnoDB存储引擎的比较
  • 关于mysql中innodb的count优化问题分享
  • MySQL Innodb表导致死锁日志情况分析与归纳
  • 关于mysql innodb count(*)速度慢的解决办法
  • InnoDB引擎数据库主从复制同步新的分享
  • show engine innodb status显示信息不全如何解决
  • MyISAM和InnoDB引擎优化分析

相关文章

  • 2018-12-05MySQL服务器时间同步问题
  • 2017-05-11phplib中的一些基本语法和函数
  • 2018-12-05mssql转换mysql的方法说明
  • 2018-12-05Oracle随机函数之dbms_random使用详解
  • 2018-12-05SQL语言查询基础:连接查询 联合查询 代码
  • 2018-12-05MySQL事务、锁以及应用(一)
  • 2018-12-05SqlServer 2005 T-SQL Query 学习笔记(1)
  • 2018-12-05sql图形化操作设置级联更新和删除
  • 2017-05-11mysql 存储过程输入输出参数示例
  • 2017-05-11关于MySQL数据迁移--data目录直接替换注意事项的详解

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • MySQL数据库如何允许远程连接?
    • mysql数据库快速入门基础学习(经典教程)
    • 关于mysql与mysqli的区别
    • dedecms5.7最新注入和上传漏洞
    • mysql中使用replace替换某字段的部分内容
    • oracle命令行删除与创建用户的代码
    • MySQL 事务实例教程
    • MySQL主从复制实战-基于GTID的复制代码分享
    • linux如何查看mysql是否启动?
    • MySQL 分区表 partition线上修改分区字段,后续进一步学习partition (2) --> 子分区以及对录入Null值的处理情况.

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有