MYSQL的存储引擎
1 MYSQL可以将数据以不同的技术存储在文件和内存中,这种技术就成为存储引擎
2 每一种存储引擎使用不同的存储机制、索引技巧、锁定水平,最终提供广泛且不同的功能
3 MYSQL支持的常用储存引擎
3.1 MYISAM
适用于事务处理不多的情况,储存限制可达256TB,支持索引、表级锁定、数据压缩
3.2 InnoDB
适用于处理事务比较多,需要有外键支持的情况,储存限制为64TB,支持事务和索引,锁颗粒为行锁
3.3 Memory
3.4 CSV
不支持索引
3.5 Archive
3.6 BlackHole
黑洞引擎,写入的数据读会消失,一般用于做数据的中继
4 并发控制
当多个连接对记录的修改时保证数据的一致性和完整性
5 锁
5.1 共享锁(读锁)
在同一时间段内,多个用户可以读取同一个资源,读取过程中数据不会发生任何变化
5.2 排它锁(写锁)
在任何时候只能有一个用户写入资源,当进行写锁时会阻塞其他的读锁或写锁操作
6 锁颗粒
6.1 表锁
是一种开销最小的锁策略
6.2 行锁
是一种开销最大的锁策略
7 事务
用于保证数据库的完整性
8 事务的特性
原子性
一致性
隔离性
持久性
9 外键是保证数据一致性的策略
10 索引
是对数据表中一列或多列的值进行排列的结构
11 索引分为
普通索引
唯一索引
全文索引
hash索引
btree索引等等
12 修改储存引擎的方法
12.1 通过修改MYSQL配置文件实现
-default-storage-engine=engine
12.2 通过创建命令表实现
第一步 CREATE TABLE 表名
第二步 s1 字符长度如VARGINE(10)
第三步 ENGINE=你要修改的存储引擎
12.3 通过修改数据表命令实现
ALTER TABLE 表名 ENGINE=你要修改的存储引擎