mysql的存储引擎

一、什么是存储引擎

数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能

存储引擎这个概念似乎只有MysqL有,存储引擎不同,MysqL呈现出来的特性也不同,适用场景就不同。其他数据库,没有听说过有存储引擎这个概念。但应该也有类似的机制。比如oracle、sql server都有OLTP(联机事务处理)、OLAP(联机分析处理)两种类型,分别适用于业务系统应用,数据仓库,可在安装时进行选择。

二、MysqL的常见存储引擎

MysqL的存储引擎种类繁多,五花八门。像oracle、sql server的类型是在安装时候就要指定,之后不能再改。但MysqL不同,它可以同时存在多种存储引擎,这个表用这种存储引擎,那个表用另一种,而且表的存储引擎还可以修改,问你死未。由于存储引擎涉及数据库不同的存储机制,表选择不同的存储引擎,可以得到不同的效果,如较高的性能,体现了灵活的一面。MysqL确实是数据库界的一个异类,数据库中的战斗鸡。

MysqL常用的存储引擎有以下几种:

1、innoDB
MysqL认的存储引擎。

最大特点是支持事务(难道支持事务不是数据库的标配吗?);支持外键(我去,难道不是标配吗?);它支持提交、回滚和紧急恢复功能来保护数据(竟无语凝噎)。它还支持行级锁定。当在多用户环境中使用时,它的“一致非锁定读取”提高了性能(就是共享锁吧?)。它将数据存储在集群索引中,从而减少了基于主键的查询I/O

可见,选择innoDB,让MysqL看上去像一个正常的数据库

使用MyISAM引擎创建数据库,将产生3个文件文件的名字以表名字开始,扩展名之处文件类型:frm文件存储表定义、数据文件的扩展名为.MYD(MYData)、索引文件的扩展名时.MYI(MYIndex)

2、myISAM
该存储引擎管理非事务性表,提供高速存储和检索,支持全文搜索

MyISAM基于ISAM存储引擎,并对其进行扩展。ISAM(Indexed Sequential Access Method,索引顺序存取方法)是1964年由BM提出的。类似多叉平衡树,总之就是利于查找。myISAM是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事务。

看上去,innoDB是MysqL版的OLTP,而myISAM则是OLAP。

  1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条sql语言都认封装成事务,自动提 交,这样会影响速度,所以最好把多条sql语言放在begin和commit之间,组成一个事务;
  2. InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败;
  3. InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。 但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该
    过大,因为主键太大,其他索引也都会很大。而MyISAM是非聚集索引,数据文件是分离的,
    索引保存的是数据文件的指针。主键索引和辅助索引是独立的。
  4. InnoDB不保存表的具体行数,执行select count(*) from table时需要全表扫描。而MyISAM用 一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快;
  5. Innodb不支持全文索引,而MyISAM支持全文索引,查询效率上MyISAM要高;

3、Memory
MysqL版的内存数据库。运行前将数据加载到内存,那必定是极快的了。但好像极少听说它,为啥大家不用它而抢着用Redis呢?估计是它有比较多的限制,比如不支持变长字段,都是定长字段;对表的大小也有要求,不能建立太大的表。突然断电数据就会消失,可靠性不如redis;速度不够redis快;使用比redis复杂;等等。

归根到底可能还是四不像吧。

在这里插入图片描述

三、查看MysqL的存储引擎

SHOW ENGInes

如果要想查看数据库认使用哪个引擎,可以通过使用命令:

SHOW VARIABLES LIKE 'storage_engine';

查看某个库下所有表使用的存储引擎

show table status from 库名;

在这里插入图片描述


查看某个库下指定表使用的存储引擎

show table status from 库名 where name='表名'

在这里插入图片描述

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...
win11本地账户怎么改名?win11很多操作都变了样,用户如果想要...