python基础 & MySQL存储引擎MyISAM与InnoDB区别总结整理
1. MySQL默认存储引擎的变迁
- 在MySQL 5.5之前的版本中,默认的搜索引擎是MyISAM,从MySQL 5.5之后的版本中,默认的搜索引擎变更为InnoDB。
2. MyISAM与InnoDB存储引擎的主要特点
1).MyISAM存储引擎的特点是:表级锁、不支持事务、支持全文索引,适合一些CMS内容管理系统作为后台数据库使用,但是使用大并发、重负荷生产系统上,表锁结构的特性就显得力不从心;
2).InnoDB存储引擎的特点是:行级锁、事务安全(ACID兼容)、支持外键、不支持FULLTEXT类型的索引(5.6.4以后版本开始支持FULLTEXT类型的索引)。InnoDB存储引擎提供了具有提交、 回滚和崩溃恢复能力的事务安全存储引擎。InnoDB是为处理巨大量时拥有最大性能而设计的。它的CPU效率可能是任何其他基于磁盘的关系数据库引擎所不能匹敌的。
-
行级锁
行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突。其加锁粒度最小,但加锁的开销也最大。行级锁分为共享锁 和 排他锁。
-
特点:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。
表级锁
表级锁是MySQL中锁定粒度最大的一种锁,表示对当前操作的整张表加锁,它实现简单,资源消耗较少,被大部分MySQL引擎支持。最常使用的MYISAM与INNODB都支持表级锁定。表级锁定分为表共享读锁(共享锁)与表独占写锁(排他锁)。
特点:开销小,加锁快;不会出现死锁;锁定粒度大,发出锁冲突的概率最高,并发度最低。
3. MyISAM与InnoDB性能测试
- 随着CPU核数的增加,InnoDB的吞吐量反而越好,而MyISAM,其吞吐量几乎没有什么变化,显然,MyISAM的表锁定机制降低了读和写的吞吐量。
4. 如何选择:
-
MyISAM适合:
1). 做很多count 的计算;2). 插入不频繁,查询非常频繁,如果执行大量的SELECT,MyISAM是更好的选择;
3). 没有事务。
-
InnoDB适合:
1). 可靠性要求比较高,或者要求事务;
2). 表更新和查询都相当的频繁,并且表锁定的机会比较大的情况指定数据引擎的创建;
3). 如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表;
- 点赞
- 收藏
- 分享
- 文章举报
- MySQL存储引擎MyISAM与InnoDB区别总结整理
- MySQL存储引擎MyISAM与InnoDB区别总结整理
- MySQL存储引擎MyISAM与InnoDB区别总结整理
- 170309、MySQL存储引擎MyISAM与InnoDB区别总结整理
- Mysql 存储引擎中InnoDB与MyISAM区别(网络整理)
- MySQL存储引擎MyISAM与InnoDB的9点区别
- Mysql存储引擎InnoDB与Myisam的区别
- MySQL存储引擎 InnoDB/ MyISAM/ MERGE/ BDB 的区别
- 存储引擎基础知识]InnoDB与MyISAM的六大区别
- Mysql 的存储引擎,myisam和innodb的区别
- 常用Mysql存储引擎--InnoDB和MyISAM简单总结
- mysql存储引擎:InnoDB和MyISAM的区别与优劣
- MySQL两大常用存储引擎MyISAM,InnoDB的区别
- mysql数据据存储引擎InnoDB和MyISAM的优势及区别
- mysql数据据存储引擎InnoDB和MyISAM的优势及区别
- mysql 存储引擎 myisam innodb 区别
- MySQL存储引擎 InnoDB与MyISAM的区别
- Mysql 存储引擎中InnoDB与Myisam的主要区别
- mysql数据据存储引擎InnoDB和MyISAM的优势及区别
- MySQL的存储引擎MyISAM与InnoDB有什么区别?