MYSQL中常见的数据库引擎
1、什么是数据库引擎?
数据库引擎是数据库用于存储、处理和保护数据的核心服务。
不同的数据库引擎有其各自的特点,如存储机制、索引技巧、主键的处理、锁的粒度等特点便随着引擎的不同而变化。
因此,针对自己项目特点选择合适的数据库引擎可以改善服务器端存储性能。
2、MYSQL中有哪些数据库引擎
使用命令行查看MYSQL中的引擎:
可以看出,MYSQL默认的数据库引擎是InnoDB。我们可以修改默认引擎,以及在建表的时候设置引擎等。
一般来说,常见的数据库引擎有:InnoDB、MyISAM、Memoey等。
3、常见引擎介绍
(1)InnoDB
是一种事务型存储引擎,提供了对ACID事物的支持,以及四种事务隔离级别。具备行级锁定(适合高并发,不是锁住整张表)以及外键支持(只有InnoDB支持外键)。
可以处理大容量数据,MySQL在运行时InnoDB会在内存中建立缓冲池,用于缓存数据及索引。
小结:支持外键、事物、行锁、数据缓存,可以处理高并发、大容量数据。
(2)MyISAM
相比起InnoDB,没有提供对数据库事务的支持,不支持细粒度的锁(行锁)及外键,当表Insert与update时需要锁定整个表,因此效率会低一些,在高并发时可能会遇到瓶颈,但MyIsam引擎独立与操作系统,可以在windows及linux上使用。
适用于不需要事物支持、外键功能、及需要对整个表加锁的情形。
小结:不支持外键、事物、行锁、数据缓存。insert与update时锁表,效率相对InnoDB较低。
(3)Memory(Heap)
MEMORY类型的表访问非常得快,因为它的数据是放在内存中的,并且默认使用HASH索引。
但是一旦服务关闭,表中的数据就会丢失掉。 HEAP允许只驻留在内存里的临时表格。驻留在内存里让HEAP要比ISAM和MYISAM都快,但是它所管理的数据是不稳定的,而且如果在关机之前没有进行保存,那么所有的数据都会丢失。
适用于,那些内容变化不频繁的代码表,或者作为统计操作的中间结果表,便于高效地堆中间结果进行分析并得到最终的统计结果。
小结:存放在内存中,本身就是缓存,访问速度快,适用于内容变化不频繁的表,或者作为统计的中间结果表。