MySQL存储引擎介绍

查看MySQL数据库中创建表的信息

如上图所示,当我们使用命令show create table server_info\G;可以显示我们所创建的表的信息,只显示两个字段,第一个字段是Table 即是创建的表的名称,第二个字段是Create Table即是创建的表的字段的信息,以及所创建的表所使用的存储引擎是什么存储引擎,默认情况下engine是InnoDB。

其中的ENGINE=InnoDB  其中的InnoDB是MySQL数据库所支持的一个存储引擎名称,

介绍MySQL中的存储引擎storage engine

storage是存储的意思。

engine是引擎的意思。

车里面的引擎是可以更换的,不同的引擎代表不同的性能,那么在MySQL数据库中存储引擎也是可以更换的,在MySQL软件上使用不同的引擎代表的是支持不同的功能,

如上图所示,可以使用命令show engines;

来查看机器上的MySQL软件上支持那些存储引擎。

如上图所示,可以看到当前MySQL软件default默认支持InnoDB这样的搜索引擎,

表中的Comment这一列中的信息,表明了不同搜索引擎,所支持的不同功能特性。

存储引擎功能介绍

1.InnoDB这样的存储引擎, Supports transactions, row-level locking, and foreign keys 

第一个所支持的功能特性是transactions——事务

第二个所支持的功能特性是row-level locking——外接

第三个所支持的功能特性是foreign keys ——行级锁

行级锁涉及到锁粒度问题:分别是表级锁和行级锁,也就是说当我们使用表级锁的时候整个表的数据是不能够被修改的,当我们使用行级锁的时候整一行的数据是不能被做修改的。

 2.MEMORY(内存)这样的存储引擎, Hash based, stored in memory, useful for temporary tables 

如果将来把MySQL数据库的存储引擎改成MEMORY,则将来在往数据库中存储数据的时候,只会将数据存往内存里面,不会将数据存往硬盘里面,特点是速度快,应用场景是临时数据,

 3.BLACKHOLE   (黑洞)       | YES     | /dev/null storage engine (anything you write to it disappears)

使用这个存储引擎的时候,存入的数据都会消失。

这样的存储引擎在MySQL主从复制的场景会有特殊的应用,

 4.MyISAM    这个存储引擎在查询数据的速度快, | MyISAM storage engine      

 5.MRG_MYISAM         | YES     | Collection of identical MyISAM tables              

这个存储引擎支持将多个MyISAM表进行合并。

6.CSV这个存储引擎一般适用于数据分析行业。

7.ARCHIVE一般适用于做数据挖掘的工作。

如何修改MySQL数据库的存储引擎?

如上图所示,可以在MySQL的配置文件中加上  default_storage_engine ,这行配置的作用就是用来修改MySQL数据库的搜索引擎的,

在Linux操作系统上使用vim /etc/my.cnf

去在文件中加上default_storage_engine  这样一个配置就能成功修改MySQL数据库的默认存储引擎,

如上图所示,想要什么样的存储引擎就使用default_storage_engine =想要使用的存储引擎。

如上图所示,在重新设置MySQL数据库的存储引擎之后,需要在Linux操作系统中使用命令systemctl restart mysql即重新启动mysql系统,

具体查看MySQL软件上的存储引擎的办法有两种

第一种方法

如上图所示,可以使用show engines;

来显示当前MySQL软件上所支持的默认存储引擎是哪个。

第二种方法,

如上图所示,可以使用命令select @@default_storage_engine;

来查看/etc/my.cnf文件中关于MySQL软件default_storage_engine的默认支持存储引擎的一个信息。

如上图所示,如果修改数据库的存储引擎后,那么先前创建的表的存储引擎都是修改之前的,之后创建的表的存储引擎都是修改之后的存储引擎。

如上图所示,server_info.frm文件是server_info表的表结构文件,这个文件中所储存的是这个表的字段名,字段数据类型,这样的信息。

server_info.ibd文件所储存的是server_info表中所储存的真实数据。以及我在这个表中所创建的索引信息。

如上图所示,如果MySQL数据库的存储引擎是MyISAM,那么表现在Linux操作系统中就是frm文件——表结构文件,MYD文件——文件所储存的是表中的真实数据,MYI文件所储存的是表的索引信息。

索引——目录

  • 16
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值