美文网首页@IT·互联网
mysql常用的两种引擎

mysql常用的两种引擎

作者: 无崖老师 | 来源:发表于2020-03-06 18:03 被阅读0次

引擎的介绍

形式:
 create table tableName()engine=MyIsAM | InnoDB;

作用:
一种用来存储MySQL中对象(记录和索引)的一种特定的结构(文件结构)存储引擎,处于MySQL服务器的最底层,直接存储数据,规定数据存储的格式。导致上层的操作,依赖于存储引擎的选择.


图片.png

查看mysql数据库,支持的存储引擎有那些
show engines;


图片.png

InnoDB

介绍:

=5.5 默认的存储引擎,MySQL推荐使用的存储引擎。
提供事务,行级锁定,外键约束的存储引擎。
事务安全型存储引擎。更加注重数据的完整性和安全性。
可以很好的解决高并发的问题.
行级锁定:
数据库的数据都是一行一行的存在,如果有需要进行锁定的时候只是锁住一行数据.这样就不妨碍其他人的使用.
[存储格式]
非单独文件存放数据(数据库名 = 文件夹名)
数据库信息 -> db.opt
表结构frm -> 表名.frm
create database php16;


图片.png

b 观察创建成功之后php16数据库的文件结构


图片.png

c 在php16数据库中创建数据表
create table innodb_1(
id mediumint auto_increment primary key,
name varchar(10) not null
)engine=InnoDB;

图片.png

d innodb_1数据表创建成功之后,观察文件的结构


图片.png

f 插入数据进行测试:ibdata1
insert into innodb_1 values(null,'段誉');
insert into innodb_1 values(null,'虚竹');
insert into innodb_1 values(null,'乔峰');
insert into innodb_1 values(null,'王语嫣');
insert into innodb_1 values(null,'天山童老');
insert into innodb_1 values(null,'慕容复');


图片.png 图片.png

问题:

innodb把所有的数据都放在一个文件中,一旦这个文件损坏,所有的数据都丢失了.
解决办法:可以进行配置,把数据文件单独存放.

配置数据文件的单独存放:
set global innodb_file_per_table=1;(不推荐这种配置)


图片.png

MyISAM

介绍
<= 5.5 MySQL默认的存储引擎。
如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完整性要求不是很高;其优势是访问的速度快,擅长与处理高速读与写。
ISAM:Indexed Sequential Access Method(索引顺序存取方法)的缩写,是一种文件系统。
数据文件的存储:
所有表的数据文件都是单独存放的,表中的索引和数据也是单独存放的.
数据库结构文件:db.opt
表中数据的存放文件: 表明.MYD
表中索引数据的存放文件:表名.MYI
表结构的定义文件:表名.frm.

因为myisam的所有文件都是独立存放的,所以我们在读取的时候,速度就会比较快.

测试

a 新建myisam引擎数据表
create table myisam_2(
id mediumint auto_increment,
name varchar(10) not null
)engine=MyISAM;


图片.png

b 查看数据表的结构文件


图片.png

数据的插入,观察取出顺序

a 插入数据
insert into myisam_2 values(1,'段誉');
insert into myisam_2 values(11,'虚竹');
insert into myisam_2 values(5,'乔峰');
insert into myisam_2 values(6,'王语嫣');
insert into myisam_2 values(9,'天山童老');
insert into myisam_2 values(8,'慕容复');

b 取出的数据,观察顺序


图片.png

两种引擎的对比

图示


图片.png

两中数据库引擎,如何选择呢?

1 如果是希望以最节约空间和时间的或响应速度更快的方式来管理表,MyISAM数据表是最好的选择.
2 如果新建的表需要用到事务,使用外键或者更高的安全性,以及需要很多用户同时修改(并发问题)某一个表中的数据,则InnoDB数据表更值得考虑.
其他引擎
Archive
存档型。
仅提供:插入和读取操作。没有更新和删除操作。
做:日志类,存档类 业务逻辑。

Memory
内存型。
在内存中存储数据和索引。
特点:快。缓存型引擎。

相关文章

  • MySql 中 Innodb 与 MyISAM 两种存储引擎对比

    两种存储引擎都是 Mysql 常用的,从 5.7之后 Mysql 默认把存储引擎改为 Innodb 一 、区别:...

  • MySql笔记——MySql引擎

    Mysql两种常用引擎对比分析 MyIASM mysql默认引擎,不支持事务和外键约束,表级锁;当执行Insert...

  • MyISAM和InnoDB的对比

    Mysql 数据库中,最常用的两种引擎是 innordb 和 myisam。InnoDB 是 Mysql 的默认存...

  • Mysql存储引擎

    存储引擎 mysql 给我们提供了很多存储引擎,常用的基本就两种MyISAM和InnoDB MyIsam和Inno...

  • mysql 之引擎与索引的关系

    两种常用引擎 MyISAM与InnoDB是两种最常见的Mysql引擎。 而他们之所以不同的大部分原因还是在索引和锁...

  • mysql自我小结

    MySql索引 存储引擎 查询mysql支持的引擎:show engines 常用引擎: MyISAM,InnoD...

  • MySql基础

    1. 存储引擎 MySQL可用的存储引擎有很多,我们只说最常用的两种InnoDB和MYISAM。 1.1 Inno...

  • 2、MySQL数据库引擎有哪些

    MySQL数据库引擎有哪些 如何查看mysql提供的所有存储引擎: mysql常用引擎包括:MyISAM、...

  • mysql 存储原理

    mysql 常用有innodb和myisam两种存储引擎,主要区别: innodb:支持事务;聚集索引 myisa...

  • MySql 常用指令

    MySQL常用指令 MySQL 存储引擎 选择 MySQL 数据类型

网友评论

    本文标题:mysql常用的两种引擎

    本文链接:https://www.haomeiwen.com/subject/svewrhtx.html