一、存储引擎:MySQL可以将数据以不同的技术存储在文件(内存)中,这种技术就称为存储引擎。每一种存储引擎使用不同的存储机制、索引技巧、锁定水平,最终提供广泛且不同的功能。
并发控制:当多个连接对记录进行修改时保证数据的一致性和完整性。由锁来解决这种问题。
锁:
共享锁(读锁):在同一时间段内,多个用户可以读取同一个资源,读取过程中数据不会发生任何变化。
排他锁(写锁):在任何时候只能有一个用户写入资源,当进行写锁时会阻塞其他的读锁或者写锁操作。
锁颗粒(锁策略):
表锁:是一种开销最小的锁策略。当用户针对数据表操作时,即用户获得了这张表的写锁权限,写锁会阻止其他用户对这张表的读写操作。(这张表只会有一个锁)
行锁:是一种开销最大的锁策略,也是支持最大并发操作处理的一种情况。(这张表可能存在多个锁)
事务:用于保证数据库的完整性。数据库区别于文件系统的重要特征之一。
索引:是对数据表中一列或者多列的值进行排序的一种结构。
MySQL支持的存储引擎:
存储引擎的选择:
MyISAM:适用于事务的处理不多的情况;
InnoDB:适用于事务处理比较,需要有外键支持的情况。
二、修改存储引擎的方法:
1、通过修改MySQL配置文件实现:
default-storage-engine = engine
2、通过创建数据表命令实现:
CREATE TABLE tb_name(...... .......) ENGINE = engine;
mysql> create table testyq(
-> s1 varchar(20)
-> )ENGINE = MyISAM;
Query OK, 0 rows affected (0.17 sec)
mysql> show create table testyq;
+--------+----------------------------------------------------------------------------------------------+
| Table | Create Table |
+--------+----------------------------------------------------------------------------------------------+
| testyq | CREATE TABLE `testyq` (
`s1` varchar(20) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8 |
+--------+----------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)
mysql>
3、通过修改数据库表命令实现;
ALTER TABLE tb_name ENGINE [ = ] engin_name;