经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MySQL » 查看文章
一起了解了解MySQL存储引擎
来源:jb51  时间:2021/12/8 10:43:07  对本文有异议

前言

在日常生活中文件格式有很多种,并且针对不同的文件格式会有对应不同存储方式和处理机制(如:.txt、.pdf、.mp4.......)

针对不同的数据应该有对应的不同的处理机制来存储

存储引擎就是不同的处理机制

一、MySQL主要存储引擎:

。Innodb?

。myisam

。memory

。blackhole

下面我们来一一了解它们

  1. '''
  2. Innodb
  3. 是MySQL5.5版本及之后默认的存储引擎
  4. 存储数据更加安全
  5. '''
  1. '''
  2. myisam
  3. 是MySQL5.5版本之前默认的存储引擎
  4. 速度要比Innodb更快,但我们更加注意的是数据的安全
  5. '''
  1. '''
  2. memory
  3. 内存引擎(数据全部存放在内存中)断电数据及丢失
  4. '''
  1. '''
  2. blackhole
  3. 无论存什么,都会立刻消失(就像黑洞一样)
  4. '''

查看所有存储引擎的sql语句:

  1. show engines;

二、实例介绍它们(不同的存储引擎在存储表的时候的异同点)

首先我们来单独建一个数据库

  1. create database day45

然后切换到该数据库中

  1. use day45;

分别创建四个不同存储引擎的四个表

  1. create table t1(id int) engine=innodb;
  2.  
  3. create table t2(id int) engine=myisam;
  4.  
  5. create table t3(id int) engine=blackhole;
  6.  
  7. create table t4(id int) engine=memory;

?

?创建好四个表后你会在data文件下看到四个不同存储引擎的文件

?t3表之所以没有t3.MYD表数据文件是因为blackhole存储引擎就像黑洞一样,丢一个文件进去就会消失掉,所以不好存储数据到文件里

t4表是memory存储引擎,存储在内存中,是短暂存储数据的,不好存储在硬盘中,因此不存在表数据文件

接下来我们为每个不同存储引擎的表都插入一条数据,看会有怎样的结果:

  1. insert into t1 values(1);
  2.  
  3. insert into t2 values(1);
  4.  
  5. insert into t3 values(1);
  6.  
  7. insert into t4 values(1);

?

?可以看到分别查询每个表的数据时,t3是没有存储数据的,因为t3是blackhole存储引擎,存的数据会立马丢掉,因此select时不会存在任何数据。实验不仅仅是进行到现在,当你重启MySQL再重新查询每个表的数据时你会有新的发现

?

?很明显,t4的表中此时也显示没有存储数据,这是为什么呢?

因为t4引用的是memory存储引擎,是将数据存储在内存中的,而不会永久存储,当关闭MySQL重启后数据就会丢失

到此这篇关于一起了解了解MySQL存储引擎的文章就介绍到这了,更多相关MySQL存储引擎内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号