mysql的经常使用引擎

https://www.cnblogs.com/xiaohaillong/p/6079551.htmlhtml

在MySQL数据库中,经常使用的引擎主要就是2个:Innodb和MyIASM。sql

首先:数据库

1.简单介绍这两种引擎,以及该如何去选择。
2.这两种引擎所使用的数据结构是什么。数据结构

1.并发

a.Innodb引擎,Innodb引擎提供了对数据库ACID事务的支持。而且还提供了行级锁和外键的约束。它的设计的目标就是处理大数据容量的数据库系统。它自己其实是基于Mysql后台的完整的系统。Mysql运行的时候,Innodb会在内存中创建缓冲池,用于缓冲数据和索引。可是,该引擎是不支持全文搜索的。同时,启动也比较的慢,它是不会保存表的行数的。当进行Select count(*) from table指令的时候,须要进行扫描全表。因此当须要使用数据库的事务时,该引擎就是首选。因为锁的粒度小,写操做是不会锁定全表的。因此在并发度较高的场景下使用会提高效率的。post

b.MyIASM引擎,它是MySql的默认引擎,但不提供事务的支持,也不支持行级锁和外键。所以当执行Insert插入和Update更新语句时,即执行写操做的时候须要锁定这个表。因此会致使效率会下降。不过和Innodb不一样的是,MyIASM引擎是保存了表的行数,因而当进行Select count(*) from table语句时,能够直接的读取已经保存的值而不须要进行扫描全表。因此,若是表的读操做远远多于写操做时,而且不须要事务的支持的。能够将MyIASM做为数据库引擎的首先。大数据

补充2点:spa

c.大容量的数据集时趋向于选择Innodb。由于它支持事务处理和故障的恢复。Innodb能够利用数据日志来进行数据的恢复。主键的查询在Innodb也是比较快的。.net

d.大批量的插入语句时(这里是INSERT语句)在MyIASM引擎中执行的比较的快,可是UPDATE语句在Innodb下执行的会比较的快,尤为是在并发量大的时候。设计

2.两种引擎所使用的索引的数据结构是什么?

答案:都是B+树!

MyIASM引擎,B+树的数据结构中存储的内容其实是实际数据的地址值。也就是说它的索引和实际数据是分开的,只不过使用索引指向了实际数据。这种索引的模式被称为非汇集索引

Innodb引擎的索引的数据结构也是B+树,只不过数据结构中存储的都是实际的数据,这种索引有被称为汇集索引

参考:http://blog.csdn.net/lulei1217/article/details/50954232

相关文章
相关标签/搜索