mysql存储引擎:
每个列有特定的数据类型(int、char等),表也有它特有的存储类型称为存储引擎。
常见的存储引擎有myisam,innodb,bdb,memory,archive等,其中最常用的是myisam和innodb(默认存储引擎)。
刚接触存储引擎,对其他存储引擎不太了解,现仅介绍myisam和innodb
先创建一个存储引擎为myisam的表,表的位置位于test库
在mysql的data目录中可以看到test库下面有三个文件
frm文件存储的是表结构
myd文件存储的是表的数据
myi文件存储的是表的索引
再创建一个innodb的表,同样位于test库
在到data目录下的test库中发现同样有一个frm文件,但是没有myd和myi文件
而data目录下多了一个ibdata1文件
用innodb存储的表的数据部分和索引都存储在ibdata1文件中,称为表空间。
查看mysql支持的存储引擎:
show engines
查看指定表的存储引擎:
(1)show table status from 库名 where name=‘表名’
(2)show create table 表名
指定表的存储方式:
(1)建表时:
(2)利用alter table
alter table 表名 engine = 存储引擎
选用存储引擎需要考虑的情况:
(1)是否需要事务功能:优先考虑支持事务管理的存储引擎
(2)是否支持外键:优先考虑支持外键的存储引擎
(3)对并发性是否有要求:优先考虑支持行锁的存储引擎