一、存储引擎
1.mysql的表类型是由存储引擎决定,主要包括myisam,innoDB,Memory等。
2.mysql数据表主要支持六种类型:CSV,Memory,ARCHIVE,MRG_MYISAM,MYISAM,InnoDB。
3.六种类型分为两大类:“事务安全型”如:innoDB;剩下的都是第二类:“非事务安全型”如:Memory,myisam等。
-- 查看所有存储引擎
SHOW ENGINES
二、主要存储引擎/表类型特点
1.MyISAM不支持事务、也不支持外键,优势是访问速度快,对事务完整性没有 要求。
2.innoDB该存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比MyISAM引擎,写的处理效率会差一些,并且会占用更多的磁盘空间以保留数据和索引。
3.Memory存储引擎使用存在于内存中的内容来创建表。每个memory表只实际对应一个磁盘文件,格式是.frm。memory类型的表访问非常的快,因为它的数据是放在内存中的,并且默认使用HASH索引,但是一旦服务关闭,表中的数据就会丢失掉,但是表的结构还在。
-- myisam存储引擎
CREATE TABLE db19(
id INT,
`name`VARCHAR(32))ENGINE MYISAM
-- 添加快,不支持外键和事务,支持表级锁
START TRANSACTION
SAVEPOINT a
INSERT INTO db19 VALUES(1,'小李')
SELECT*FROM db19
ROLLBACK TO a
-- memory存储引擎
CREATE TABLE db20(
id INT,
`name`VARCHAR(32))ENGINE MEMORY
INSERT INTO db20 VALUES(1,'lll'),(2,'mmmm'),(3,'hhhh')
SELECT*FROM db20
三、修改存储引擎
-- 指令修改存储引擎
ALTER TABLE db20 ENGINE = INNODB