什么是存储引擎,有什么用?
怎么给表添加/指定"存储引擎"呢?
show create table t_student;
可以在建表的时候给表指定存储引擎
CREATE TABLE `t_student` ( `no` int NOT NULL AUTO_INCREMENT, `name` varchar(255) DEFAULT NULL, `cno` int DEFAULT NULL, PRIMARY KEY (`no`), KEY `cno` (`cno`), CONSTRAINT `t_student_ibfk_1` FOREIGN KEY (`cno`) REFERENCES `t_class` (`classno`) ) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
在建表的时候可以在最后小括号")"的右边使用:
结论:
mysql默认的存储引擎是:InnoDB
mysql默认的字符编码方式是:utf8
#建表时指定存储引擎,以及字符编码方式 create table t_product( id int, name varchar(255) )engine = InnoDB default charset = utf8; drop table t_product; show tables; show create table t_product;
查看MySQL支持哪些搜索引擎
命令:show engines \G
MyISAM存储引擎
对于一张表来说,只要是主键,或者加有unique约束的字段会自动创建索引
InnoDB存储引擎
优点:安全,支持事务
缺点:效率低,不能压缩,不能转换为只读,不能很好的节省存储空间
MEMORY存储引擎
优点:查询效率是最高的
缺点:不安全,关机之后数据消失,因为数据和索引都是在内存当中