目录


文章目录

  • 一、什么是存储引擎
  • 存储引擎就是指表的类型。数据库的存储类型决定了表在计算机中的存储方式。用户可以根据不同的存储方式、是否进行事务处理等来选择合适的存储引擎。
  • 二、如何查看MySQL的存储引擎
  • (一)查看MySQL支持的存储引擎:SHOW ENGINES
  • 练习一、查看MySQL支持的存储引擎:SHOW ENGINES;
  • 练习二、更美观的显示,加\G,以网格形式展示:SHOW ENGINES \G;
  • support:就代表MySQL是否支持这种存储引擎,yes代表支持,no表示不支持
  • comment:表示对这种存储引擎的评论或者注释
  • Transactions:是否支持事务处理,yes是支持,no是不支持
  • XA:是否是一个分布式的交易处理的XA规范,yes是支持,no是不支持
  • Savepoints:是否支持保存点。yes表示支持,no表示不支持
  • 我们默认的存储引擎是InnoDB
  • (二)查看显示支持的存储引擎信息:SHOW VARIABLES LIKE'hava%'
  • (三)查看默认的存储引擎:SHOW VARIABLES LIKE'storage_engine'(不好用)SHOW VARIABLES LIKE'%engine%'(好用)
  • 三、MySQL常用存储引擎及特点
  • (一)InnoDB存储引擎
  • 特点:(1)主要是给MySQL提供了事务,包括回滚,包括修复能力和多版本并发控制的一个事务完全。(2)只有它支持外界约束。(3)它创建表的表结构存储在一个.fim的文件里。(4)数据和索引分别存储在innodbdatahomedr和innodbdatafilepass定义的表空间中
  • 缺点:读取效率比较低,占取空间比较大
  • (二)MyISAM存储引擎
  • 特点 :(1)当我们用MyISAM引擎创建表的时候,要把我们的表存储成三个文件,文件的名字和表名相同,分别是fim,mid和mii。fim是存储表结构的,fid是存储我们的数据的,fii是存储我们的索引的。(2)基于我们MyISAM存储引擎的表支持三种不同的存储格式,分别是静态型(默认存储格式,字段是固定长度的),动态型(包含我们的变长字段,字段的长度是不固定的)和压缩型(用MyISAM的apache工具创建,它占用的磁盘就比较小)
  • 优点:占用磁盘空间小,处理速度块,插入读取数据快
  • 缺点:不支持事务。没有事务的完整性,安全性以及事务的并发性处理
  • (三)MEMORY存储引擎
  • 特点:(1)存储在内存中的内容来创建表,而且所有的数据也存放到我们的内存中(速度快)(2)基于MEMORY存储引擎的表实际对应于一个磁盘文件,文件名也和表名相同,类型也是fim类型。但是这个文件中只存储表的结构,数据存储到内存中,这有利于对数据快速的处理。它可以提高表的速率。(3)服务器需要足够的内存来维持引擎的使用,使用完释放掉
  • 缺点:如果意外断电或者出现异常,就可能影响数据的完整性。安全性不高,生命周期比较短,一次最好。不能建立太大的表
  • 四、如何选择合适的存储引擎


一、什么是存储引擎

存储引擎就是指表的类型。数据库的存储类型决定了表在计算机中的存储方式。用户可以根据不同的存储方式、是否进行事务处理等来选择合适的存储引擎。

二、如何查看MySQL的存储引擎

(一)查看MySQL支持的存储引擎:SHOW ENGINES

练习一、查看MySQL支持的存储引擎:SHOW ENGINES;

MySQL——6.MySQL中的存储引擎介绍_MySQL

练习二、更美观的显示,加\G,以网格形式展示:SHOW ENGINES \G;

MySQL——6.MySQL中的存储引擎介绍_MySQL_02


MySQL——6.MySQL中的存储引擎介绍_数据_03

support:就代表MySQL是否支持这种存储引擎,yes代表支持,no表示不支持
comment:表示对这种存储引擎的评论或者注释
Transactions:是否支持事务处理,yes是支持,no是不支持
XA:是否是一个分布式的交易处理的XA规范,yes是支持,no是不支持
Savepoints:是否支持保存点。yes表示支持,no表示不支持
我们默认的存储引擎是InnoDB

(二)查看显示支持的存储引擎信息:SHOW VARIABLES LIKE’hava%’

MySQL——6.MySQL中的存储引擎介绍_存储引擎_04

(三)查看默认的存储引擎:SHOW VARIABLES LIKE’storage_engine’(不好用)SHOW VARIABLES LIKE’%engine%’(好用)

MySQL——6.MySQL中的存储引擎介绍_MySQL_05

三、MySQL常用存储引擎及特点

有了这些存储引擎,建表的时候就可以用engine指定使用的存储引擎。
不同的表可以用不同的存储引擎。
涉及到以后优化或者业务逻辑的时候,就要选择合适的存储引擎。

(一)InnoDB存储引擎

特点:(1)主要是给MySQL提供了事务,包括回滚,包括修复能力和多版本并发控制的一个事务完全。(2)只有它支持外界约束。(3)它创建表的表结构存储在一个.fim的文件里。(4)数据和索引分别存储在innodbdatahomedr和innodbdatafilepass定义的表空间中
缺点:读取效率比较低,占取空间比较大

(二)MyISAM存储引擎

特点 :(1)当我们用MyISAM引擎创建表的时候,要把我们的表存储成三个文件,文件的名字和表名相同,分别是fim,mid和mii。fim是存储表结构的,fid是存储我们的数据的,fii是存储我们的索引的。(2)基于我们MyISAM存储引擎的表支持三种不同的存储格式,分别是静态型(默认存储格式,字段是固定长度的),动态型(包含我们的变长字段,字段的长度是不固定的)和压缩型(用MyISAM的apache工具创建,它占用的磁盘就比较小)
优点:占用磁盘空间小,处理速度块,插入读取数据快
缺点:不支持事务。没有事务的完整性,安全性以及事务的并发性处理

(三)MEMORY存储引擎

特点:(1)存储在内存中的内容来创建表,而且所有的数据也存放到我们的内存中(速度快)(2)基于MEMORY存储引擎的表实际对应于一个磁盘文件,文件名也和表名相同,类型也是fim类型。但是这个文件中只存储表的结构,数据存储到内存中,这有利于对数据快速的处理。它可以提高表的速率。(3)服务器需要足够的内存来维持引擎的使用,使用完释放掉
缺点:如果意外断电或者出现异常,就可能影响数据的完整性。安全性不高,生命周期比较短,一次最好。不能建立太大的表

四、如何选择合适的存储引擎