MYSQL可以将数据以不同的技术存储在文件(内存)中,这种技术就称为存储引擎。
每一种存储引擎使用不同的存储机制、索引技巧、锁定水平,最终提供广泛且不同的功能。
存储引擎:
MyISAM
InnoDB
Memory
CSV
Archive
并发控制:当多个连接对记录进行修改时保证数据的统一性和完整性。
锁系统解决并发问题:
共享锁(读锁):在同一时间段内,多个用户可以读取同一个资源。读取过程中数据不会发生变化。
排他锁(写锁):在任何时候只能有一个用户写入资源,当进行写锁的时候,会阻塞其他读锁或写锁操作。
锁颗粒
表锁,是一种开销最小的锁策略。
行锁,是一种开销最大的锁策略。
特点 | MyISAM | InnoDB | CSV | Archive |
存储限制 | 256TB | 64TB | 有 | 无 |
事务安全 | 支持 | |||
支持索引 | 支持 | 支持 | 支持 | |
锁颗粒 | 表锁 | 行锁 | 表锁 | 行锁 |
数据压缩 | 支持 | 支持 | ||
支持外键 | 支持 |
修改存储引擎
在创建表的时候设定存储引擎
CREATE TABLE tp1(s1 varchar(40)) ENGINE = MyISAM;
查看存储引擎:
SHOW CREATE TABLE tp1;
在已经创建好的表中修改存储引擎
ALTER TABLE tp1 ENGINE = InnoDB;