MySQL之存储引擎
1.查看某个数据表的命令
SHOW CREATE TABLE tbl_name
MySQL可以将数据以不同的技术存储在文件(内存)中,这种技术就称为存储引擎。每一种存储引擎使用不同的存储机制、索引技巧、锁定水平,最终提供广泛且不同的功能。
MySQL支持的存储引擎有:MyISAM(适用于事物的处理不多的情况)、InnoDB(适用于事物处理比较多,需要有外键支持的情况)、Memory、CSV、Archive
2.并发控制:当多个连接对记录进行修改保存时保证数据的一致性和完整性的技术。
3.锁
1)共享锁(读锁):在同一时段内,多个用户可以读取同一个资源,读取过程中数据不会发生任何变化。
2)排它锁(写锁):在任何时候只能有一个用户写入资源,当进行写锁是会阻塞其他的读锁或者写锁操作。
锁的力度(锁的颗粒:锁定时的单位):
表锁,是一种开销最小的锁策略。得到数据表的写锁(禁止其他用户进行读写,只能有一个锁)
行锁,是一种开销最大的锁策略。并行性最大(有多少条记录,就有可能对每条记录都进行锁)
表锁的开销最小,因为使用锁的个数最小,行锁的开销最大,因为可能使用锁的个数比较多
4.事务处理
事务用于保证数据库的完整性,四个特性:原子性(atomicity)、一致性(consistency)、隔离性(solation)、持久性(durability);
5.索引
对数据表中一列或多列的值进行排序的一种结构。
6.存储引擎的特点
CSV由逗号分隔的存储引擎,会在数据库的子目录里为每一个表创建一个.csv的文件,是一种普通的文本文件。每一个数据行占用一个文本行。CSV不支持索引
7.修改存储引擎的方法
1)通过修改MySQL配置文件实现:default-storage-engine=引擎名;
2)CREATE TABLE table_name(
...
..
)ENGINE=引擎名;
3)通过修改数据表命令实现:ALTER TABLE table_name ENGINE [=] engine_name;