Mysql-存储引擎

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)。

  

原文地址:https://www.cnblogs.com/cainame/p/11257850.html