MySQL存储引擎

2021/9/23 19:45:11

本文主要是介绍MySQL存储引擎,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

存储引擎

什么是存储引擎,有什么用?

  • 存储引擎是MySQL中特有的一个术语,其他数据库中没有(Oracle中有,但不叫这个名字)
  • 存储引擎实际上是一个表存储/组织数据的方式
  • 不同的存储引擎,表存储数据的方式不同

怎么给表添加/指定"存储引擎"呢?

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

在建表的时候可以在最后小括号")"的右边使用:

  • ENGINE来指定存储引擎
  • CHARSET来指定这张表的字符编码方式

结论:

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

关于MySQL常用的存储引擎

MyISAM存储引擎

  • 他管理的表具有以下特征:
  • 使用三个文件表示每个表
    1. 格式文件 - 存储表结构的定义(mytable.frm)
    2. 数据文件 - 存储表行上的内容(mytable.MYD)
    3. 索引文件 - 存储表上索引(mytable.MYI):索引是一本书的目录,缩小扫描范围,提高查询效率,可被转换为压缩、只读表来节省空间

对于一张表来说,只要是主键,或者加有unique约束的字段会自动创建索引

InnoDB存储引擎

优点:安全,支持事务
缺点:效率低,不能压缩,不能转换为只读,不能很好的节省存储空间

MEMORY存储引擎

优点:查询效率是最高的
缺点:不安全,关机之后数据消失,因为数据和索引都是在内存当中



这篇关于MySQL存储引擎的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程