当前位置:Gxlcms > 数据库问题 > MySQL存储引擎

MySQL存储引擎

时间:2021-07-01 10:21:17 帮助过:18人阅读

常见的存储引擎:

 -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存储引擎

标签:问题   写入   order   pad   ima   arc   写锁   add   logs   

人气教程排行