标签:核心 acl 最大的 服务 归档 固定 isa chap blob
数据库存储引擎是数据库底层的软件组件,我们平常看不到,但是却与我们操作数据库息息相关。DBMS使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。现在很多数据库都支持多种不同的数据库引擎,MySQL的核心就是存储引擎。下面我们就来认识一下。
MySQL提供了多个不同的存储引擎,包括处理事务安全表的引擎和处理非事务安全表的引擎。在MySQL中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎。可以使用SHOW ENGINES语句查看系统所支持的引擎类型,结果如下:
Support列的值表示当前引擎是否能使用,YES表示可以使用,NO表示不能使用,DEFAULT表示为当前默认引擎,从上面我们知道当前默认引擎是InnoDB.
InnoDB事务性数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键。MySQL5.5.5之后。InnoDB作为默认存储引擎,InnoDB主要特性有:
InnoDB不创建目录,使用InnoDB时,MySQL将在MySQL数据目录下创建一个名为ibdatal的10M大小的自动扩展数据文件,以及两个名为ib_ligfile9和ib_logfilel1的5MB大小的日志文件。
MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事务。在MySQL5.5.5之前的版本中,MyISAM是默认存储引擎。MyISAM主要特性有:
MEMORY存储引擎将表中的数据存储到内存中,为查询和引用其他数据提供快速访问。
MEMORY主要特性有:
不同存储引擎有各自不同的特点,以适应不同的需求,如下表所示。为了做出选择,首先需要考虑每一个存储引擎提供了哪些不同的功能。
如果要提供提交,回滚和崩溃恢复能力的事务安全(ACID兼容)能力,并要求实现并发控制,InnoDB是个很好的选择,如果数据表主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率:如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存中的MEMORY引擎,MySQL中使用该引擎作为临时表,存放查询的中间结果。如果只有INSERT和SELECT操作,可以选择Archive引擎,Archive存储引擎支持高并发的插入操作,但是本身并不是事务安全的。Archive存储引擎非常适合存储归档数据,如记录日志信息可以使用Archive引擎。
使用哪一种引擎要根据需求灵活选择,一个数据库中多个表可以使用不同的引擎以满足各种性能和实际需求。使用合适的存储引擎,将会提高整个数据库的性能。
菜鸟崛起 DB Chapter 4 MySQL 5.6的数据库引擎
标签:核心 acl 最大的 服务 归档 固定 isa chap blob
原文地址:http://www.cnblogs.com/lin-jing/p/7967034.html