MySQL存储引擎

Posted data小爱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL存储引擎相关的知识,希望对你有一定的参考价值。

前只学了mysql的增删改查的简单操作,最近听了慕课网的《与MySQL的零距离接触》https://www.imooc.com/learn/122,最后讲到了MySQL的存储引擎,以前没接触过,在这里整理一下。后面有看到相关的东西可以再添加上去。

MySQL的存储引擎

1.简介

MySQL将数据以不同的技术存储在文件(内存)中,这种技术称为存储引擎

常见的存储引擎:

 -MyISAM

-InnoDB

-Memory

-CSV

-Archive

2.相关知识

(1)并发控制:

  当多个连接对记录进行修改时保证数据的一致性和完整性。

   处理并发读和并发写时系统使用一套锁系统来解决问题

  • 锁:

  -共享锁(读锁):在同一时间段内,多个用户可以读取同一个资源,读取过程中数据不会发生任何变化;

  -排他锁(写锁):只能有一个用户写入资源,当进行写锁时会阻塞其它的读锁或写锁操作

  • 锁颗粒:(锁的力度,锁定时的单位,对修改的数据精确加锁)

  表锁:开销最小的策略;

  行锁:开销最大 的策略

(2)事务:(数据库区别于文件系统的重要特征之一)

  •   事务用于保证数据库的完整性

  

  • 事务的特性(ACID)

  

(3)外键:保证数据一致性的策略

(4)索引:对数据表中的一列或多列的值进行排序的一种结构

  可以快速访问数据表中的特定信息(相当于书的目录)

3.各个存储引擎的特点

CSV存储引擎不支持索引

MyISAM:适用于事务不多的情况

InnoDB:适用于事务处理比较多,需要有外键支持的情况。

4.设置存储引擎

  • 修改MySQL配置文件
  • 创建数据表时

CREATE TABLE table_name(

...

)ENGINE = MyISAM;

  • 修改数据表命令

  ALTER TABLE table_name ENGINE = engine_name;

mysql> CREATE TABLE tp1(
-> s VARCHAR(10)
-> )ENGINE = myisam;
Query OK, 0 rows affected

mysql> SHOW CREATE TABLE tp1;
+-------+----------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+----------------------------------------------------------------------------------------+
| tp1 | CREATE TABLE `tp1` (
`s` varchar(10) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 |
+-------+----------------------------------------------------------------------------------------+
1 row in set

mysql> ALTER TABLE tp1 ENGINE=InnoDB;
Query OK, 0 rows affected
Records: 0 Duplicates: 0 Warnings: 0

mysql> SHOW CREATE TABLE tp1;
+-------+----------------------------------------------------------------------------------------+
| Table | Create Table |
+-------+----------------------------------------------------------------------------------------+
| tp1 | CREATE TABLE `tp1` (
`s` varchar(10) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+----------------------------------------------------------------------------------------+
1 row in set

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

以上是关于MySQL存储引擎的主要内容,如果未能解决你的问题,请参考以下文章

MySQL支持的存储引擎

mysql存储引擎

Mysql存储引擎Myisam小结

Mysql存储引擎之myisam

mysql存储引擎

MySQL(十六)—— 存储引擎