存储引擎
MySQL可以将数据以不同的技术存储在文件(内存)中,这种技术就称为存储引擎。
每一种存储引擎使用不同的存储机制、索引技巧、锁定水平、最终提供广泛而不同的功能。
MyISAM
InnoDB
Memory
CSV
Archive
并发控制
-当多个连接对记录进行修改时保证数据的一致性和完整性。
锁
共享锁(读锁):在同一个时间段内,多个用户可以读取同一个资源,读取过程中数据不会发生任何变化。
排它锁(写锁):在任何时候只能有一个用户写入资源,当进行写资源时会阻塞其他的读锁或者写锁操作。
锁颗粒
表锁,是一种开销最小的锁策略。
行锁,是一种开销最大的锁策略。(可能每一行都需要锁)
事务
事务用于保证数据库的完整性。
事务的特性:
原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行。
一致性(Consistency):事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。这种特性称为事务的一致性。假如数据库的状态满足所有的完整性约束,就说该数据库是一致的。表B的字段是从表A获取,表A的字段改变了,表B的相应字段也需要改变,这就叫一致性。
例如完整性约束a+b=10,一个事务改变了a,那么b也应随之改变。
隔离性(Isolation):分离性指并发的事务是相互隔离的。即一个事务内部的操作及正在操作的数据必须封锁起来,不被其它企图进行修改的事务看到。假如并发交叉执行的事务没有任何控制,操纵相同的共享对象的多个并发事务的执行可能引起异常情况。
持久性(Durability):持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。即一旦一个事务提交,DBMS保证它对数据库中数据的改变应该是永久性的,即对已提交事务的更新能恢复。持久性通过数据库备份和恢复来保证。
外键
是保证数据一致性的策略。
索引(普通索引、唯一索引、全文索引、btree索引、hash索引……)
对数据表中的一列或多列的值进行排序的一种结构。
各种存储引擎的特点
修改MySQL的存储引擎
1. 通过修改MySQL的配置文件实现
Default-storage-engine = engine
2. 通过创建数据表命令实现
Create TABLE table_name(
…
)ENGINE = engine;
3. 通过修改数据表命令实现
ALTER TABLE table_name ENGING [=] engine_name;