1.什么是存储引擎?
存储引擎其实就是如何存储数据,如何为存储的数据建立索引和如何更新,查询数据等技术的实现方法。
2.Mysql存储引擎的概念?
Mysql中的数据用各种不同的技术存储在数据或内存中。这些技术中的每一种技术都使用不同的存储机制,索引技巧,锁定水平并且最终提供广泛的,不同的功能和能力。这些不同的技术以及配套的相关功能在Mysql中称为存储引擎。
Mysql默认配置了许多不同的存储引擎,可以预先设置或者在Mysql服务器中启用。
3.查询Mysql中支持的存储引擎
show engines;
4.查询默认的存储引擎
SHOW VARIABLES LIKE 'storage_engine%'
5.InnoDB存储引擎
InnoDB给Mysql的表提供了事务,回滚,崩溃修复能力和多版本并发控制的事务安全。
InnoDB是Mysql上第一个提供外键约束的表引擎。而且InnoDB对事务处理的能力,也是Mysql其他存储引擎所无法与之比拟的。
InnoDB存储引擎中支持自动增长列AUTO_INCREMENT。自动增长列不能为空,而且值唯一。
InnoDB存储引擎的优势在于提供良好的事务管理,崩溃修复能力和并发控制,缺点是读写效率低,占用数据空间相对比较大。
如下情况建议使用InnoDB
5.1 InnoDB是如下情况的理想引擎
(1)更新密集的表
(2) 事务
(3) 自动灾难修复
6.MyISAM存储引擎
MyISAM存储引擎的优势在于占用空间小,处理速度快:缺点是不支持事务的完整性和并发性。
7.MEMORY存储引擎
MEMORY存储引擎是MYSQL是mysql中的一类特殊的存储引擎。其使用存储在内存中的内容来创建表,而且所有数据也放在内存中。重启或者关机,表中的所有数据将会消失。当有以下情况时建议使用MEMORY
7.1暂时:目标数据只是临时需要,在其生命周期中必须立即可用。
7.2相对无关:存储在MEMORY表中的数据如果突然丢失,不会对应用服务器产生实质的负面印象,而且不会对数据完整性有长期影响。
8.如何选择合适的存储引擎
8.1 InnoDB存储引擎:用于事务处理应用程序,具有众多特性,包括ACID事务支持,支持外键。同时支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高,要求实现并发控制
8.2 MyISAM:管理非事务表,它提供高速存储和检索,以及全文搜索能力。MyISAM存储引擎插入数据快,空间和内存使用比较低。
8.3 MEMORY:需要很快的读写速度,对数据的安全性要求较低。
9.Mysql数据类型
Mysql支持的数据类型主要分为三类:数字类型,字符串,日期和时间类型。
9.1数字类型
分为整型和浮点型
整型:TINYINT,BIT,BOOL,SMALLINT,MEDIUMINT,INT,BIGINT
浮点型:FLOAT,DOUBLE,DEMICAL
9.2 字符串类型
9.3 日期时间类型
DATE(YYYY-MM-DD),TIME(HH:MM:SS),DATETIME(YYYY-MM-DD HH:MM:SS),TIMESTAMP,YEAR(YEAR)。