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( mysql> SHOW CREATE TABLE tp1; mysql> ALTER TABLE tp1 ENGINE=InnoDB; mysql> SHOW CREATE TABLE tp1; |
以上是关于MySQL存储引擎的主要内容,如果未能解决你的问题,请参考以下文章