MySQL 有多种存储引擎,目前常用的是 MyISAM 和 InnoDB 这两个引擎,下面对这两个引擎做一个简单的介绍。

MyISAM

MyISAM 是 MySQL 5.5.5 之前的默认引擎,它支持 B-tree/FullText/R-tree 索引类型。

锁级别为表锁,表锁优点是开销小,加锁快;缺点是锁粒度大,发生锁冲动概率较高,容纳并发能力低,这个引擎适合查询为主的业务。

此引擎不支持事务,也不支持外键。

MyISAM强调了快速读取操作。它存储表的行数,于是SELECT COUNT(*) FROM TABLE时只需要直接读取已经保存好的值而不需要进行全表扫描。

InnoDB

InnoDB 存储引擎最大的亮点就是支持事务,支持回滚,它支持 Hash/B-tree 索引类型。

锁级别为行锁,行锁优点是适用于高并发的频繁表修改,高并发是性能优于 MyISAM。缺点是系统消耗较大,索引不仅缓存自身,也缓存数据,相比 MyISAM 需要更大的内存。

InnoDB 中不保存表的具体行数,也就是说,执行 select count(*) from table时,InnoDB 要扫描一遍整个表来计算有多少行。

支持事务,支持外键。

总结

  MyISAM InnoDB
存储结构 每张表被存放在三个文件:frm-格定义MYD(MYData)-数据文件MYI(MYIndex)-索引文件 所有的表都保存在同一个数据文件中(也可能是多个文件,或者是独立的表空间文件),InnoDB表的大小只受限于操作系统文件的大小,一般为2GB
存储空间 MyISAM可被压缩,存储空间较小 InnoDB的表需要更多的内存和存储,它会在主内存中建立其专用的缓冲池用于高速缓冲数据和索引
可移植性、备份及恢复 由于MyISAM的数据是以文件的形式存储,所以在跨平台的数据转移中会很方便。在备份和恢复时可单独针对某个表进行操作 免费的方案可以是拷贝数据文件、备份 binlog,或者用 mysqldump,在数据量达到几十G的时候就相对痛苦了
事务安全 不支持 每次查询具有原子性 支持 具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表
AUTO_INCREMENT MyISAM表可以和其他字段一起建立联合索引 InnoDB中必须包含只有该字段的索引
SELECT MyISAM更优  
INSERT   InnoDB更优
UPDATE   InnoDB更优
DELETE   InnoDB更优 它不会重新建立表,而是一行一行的删除
COUNT without WHERE MyISAM更优。因为MyISAM保存了表的具体行数 InnoDB没有保存表的具体行数,需要逐行扫描统计,就很慢了
COUNT with WHERE 一样 一样,InnoDB也会锁表
只支持表锁 支持表锁、行锁 行锁大幅度提高了多用户并发操作的新能。但是InnoDB的行锁,只是在WHERE的主键是有效的,非主键的WHERE都会锁全表的
外键 不支持 支持
FULLTEXT全文索引 支持 不支持(5.6.4以上支持英文全文索引) 可以通过使用Sphinx从InnoDB中获得全文索引,会慢一点

MySQL系列---数据库引擎相关推荐

  1. 【腾讯面试题】MySQL常用数据库引擎

    MySQL常用数据库引擎 MyISAM存储引擎 InnoDB存储引擎 MEMORY存储引擎 存储引擎的选择 查看MySQL数据库使用的引擎 SHOW ENGINES; 查看数据库默认使用哪个引擎 SH ...

  2. mysql 修改引擎_修改MySQL的数据库引擎为INNODB的方法

    本文主要介绍了修改MySQL的数据库引擎为INNODB的方法,希望能对您有所帮助. 对于MySQL数据库,如果你要使用事务以及行级锁就必须使用INNODB引擎.如果你要使用全文索引,那必须使用myis ...

  3. MySQL常用数据库引擎

    MySQL常用数据库引擎 查看MySQL数据库使用的引擎 SHOW ENGINES; 查看数据库默认使用哪个引擎 SHOW VARIABLES LIKE 'storage_engine'; MyISA ...

  4. Mysql的数据库引擎 区别特点_mysql数据库存储引擎及区别

    MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用: MyISAM.InnoDB.MERGE.MEMORY(HEAP).BDB(BerkeleyDB).EXAMPLE.FEDERA ...

  5. mysql数据库引擎博客_2、MySQL常见数据库引擎及比较?

    摘自: https://www.cnblogs.com/zhuifeng-mayi/p/9265075.html MySQL存储引擎简介 MySQL支持数个存储引擎作为对不同表的类型的处理器.MySQ ...

  6. mysql支持数据安全的引擎_2、MySQL常见数据库引擎及比较?

    MySQL存储引擎简介 MySQL支持数个存储引擎作为对不同表的类型的处理器.MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎: MyISAM管理非事务表.它提供高速存储和检索,以及 ...

  7. MySQL的数据库引擎介绍

    1.什么是数据库引擎 数据库引擎就是操作数据库的一段程序或程序段,用于存储.处理和保护数据的核心服务. 利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求 ...

  8. mysql之数据库引擎

    一:引擎概述 1,为什么要合理选择数据库存储引擎? MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功 ...

  9. mysql 的数据库引擎

    mysql 缺省情况 下数据库引擎是 MyISAM 这种数据库引擎是不支持事务的,InnoDB这种数据库引擎是支持事务的. mysql 支持的数据库引擎如下图所示: MySIAM MySQL5.0以前 ...

最新文章

  1. 自定义Linq的Distinct
  2. 获取点击的键盘的keyCode
  3. python变量作用域 for_python变量作用域
  4. php 5.2 mysqli_PHP5安装好后添加mysqli扩展支持 | 学步园
  5. python numpy.meshgrid() 函数的用法(快速生成坐标矩阵)
  6. PHP核心技术笔记(2):面向对象的设计原则
  7. Windows下Qt5搭建Android开发环境笔记
  8. OpenKruise - 云原生应用自动化引擎正式开源
  9. 蓝桥杯 基础练习 特殊的数字
  10. SQL Server中的列存储索引
  11. [动态规划|字符串] leetcode 5 最长回文子串
  12. 如何在浏览器上安装 VueDevtools工具
  13. Atitit 2017年的技术趋势与未来的大技术趋势
  14. linux系统安装详细教程
  15. 假显卡测试软件,如何使用软件检测真假显卡软件验证方法简介
  16. Windows 10 常用软件推荐
  17. 网页版魔兽争霸游戏策划
  18. 【每日一练】64—CSS实现彩虹文字的动画效果
  19. 女性吃什么食物会导致不孕?
  20. 宽窄巷子,最成都?1038

热门文章

  1. 02-设计模式 UML类图
  2. zookeeper-入门介绍架构使用(这一篇足以)
  3. 《父与子的编程之旅-与小卡特一起学python》第18章
  4. ArcGIS地质图矢量化技巧
  5. 使用SQLyog导出导入MySql中的数据
  6. 抖音卡点视频怎么制作
  7. 圆锥误差补偿多子样算法
  8. 禅意花园网页设计_CSS教程:15.1 “禅意花园”页面HTML结构分析
  9. Log4j详细使用教程
  10. 迅雷导出ed2k到eMule链接无效处理