2018-05-05-9章-MySQL_存储引擎

MySQL 存储引擎

1 MySQL存储引擎简介

查看数据表的创建命令:

SHOW CREATE table tbl_name

存储引擎

​ MySQL 可以将数据以不同的技术存储在文件(内存)中,

这种技术就称为存储引擎。

​ 每一种存储引擎使用不同的存储机制、索引技巧、锁定水

平,最终提供广泛且不同的功能。

MySQL支持的存储引擎

  • ​ MyISAM
  • ​ InnoDB
  • ​ Memory
  • ​ CSV
  • ​ Archive

2 MySQL 相关知识点之并发处理

相关知识点

  • 并发控制

    • 当多个连接对记录进行修改时保证数据的一致性和完整性。
    • 共享锁(读锁) : 在同一时间段内,多个用户可以读取同一个资源,

      ​ 读取过程中数据不会发生任何变化。

    • 排他锁(写锁) : 在任何时候只能有一个用户写入资源,当进行写锁

      ​ 时会阻塞其他的读锁或者写锁操作。

    • 锁颗粒

      • 表锁,是一种开销最小的锁策略。
      • 行锁,是一种开销最大的所策略。

3 MySQL 相关知识点之事务处理

事务的特性:

  1. 原子性(Atomicity)
  2. 一致性(Consistency)
  3. 隔离性(Isolation)
  4. 持久性(Durability)

4 MySQL 相关知识点之外键和索引

  • 外键:

​ 保证数据一致性的策略

  • 索引:

    是对数据表中一列或多列的值进行排序的一种结构。

5 MySQ L各个存储引擎特点

索引:普通索引、唯一索引、全文索引、btree索引、hash索引......

CSV  存储引擎实际上是由逗号,分割的存储引擎,他会在数据库的子目录里面,为每一个表来创建一个.csv的文件
这是一种普通的文本文件,每一个数据行占用一个文本行。
CSV 的存储引擎不支持索引
BlackHole : 黑洞引擎,写入的数据都会消失,一般用于做数据复制的中继。

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

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

6 设置存储引擎

6.1 修改存储引擎的方法

  • 通过修改MySQL配置文件实现

    • default-storage-engine = engin
  • 通过创建数据表命令实现

    • CREATE TABLE table_name(

      )ENGINE = engine;

mysql> CREATE TABLE tp1(
    -> s1 VARCHAR(10)
    -> )ENGINE = MyISAM;
Query OK, 0 rows affected (0.01 sec)

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

  • 通过修改数据表命令实现

    ALTER TABLE table_name ENGINE [=] engine_name;

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

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

你可能感兴趣的:(mysql)