MySQL之引擎
创建时间:2017-08-08 投稿人: 空 浏览次数:468
引擎种类
FEDERATED
MRG_MYISAM
MyISAM
BLACKHOLE
CSV
MEMORY
ARCHIVE
InnoDB
PERFORMANCE_SCHEMA
输入show storage Engines,可以看到当前mysql的所有引擎,本文主要讲常用的两种索引MyISAM和InnoDB
引擎使用
查看表的引擎,show create table table_name ,可以看到表的引擎
在创建表的时候,我们就可以设置表的的引擎
CREATE TABLE user (id INT NOT NULL AUTO_INCREMENT, username VARCHAR(50) NOT NULL,password VARCHAR (50) NOT NULL DEFAULT 1,PRIMARY KEY(id)) ENGINE =INNODB
修改表的引擎 alter table note engine=myisam;
比较
项 | MyISAM | InnoDB |
---|---|---|
文件 | 三个文件组成。.frm(存储表定义).MYD (存储数据文件)。.MYI (存储索引)。 | 所有的表都保存在同一个数据文件中(也可能是多个文件,或者是独立的表空间文件),InnoDB表的大小只受限于操作系统文件的大小,一般为2GB。 |
外键 | 不支持 | 支持 |
事务 | 不支持 | 支持 |
自增长列 | 必须是索引列,不需要一定是组合索引的第一列 | 必须是索引,如果是组合索引,必须是组合索引的第一列 |
查找行数 | 存储了表的行数,查找时候很快 | 必须扫描全表 |
增删改查 | select更适合 | insert 和 update更适合 |
锁 | 表锁 | 既支持行锁也支持表锁 |
删表 | 重建表 | 一行一行删 |
存储空间 | 表支持3种存储格式,静态表(默认存储格式,每条记录固定长度),动态表(每条记录不是固定长度,存储的空间减少了),压缩表(每条记录被单独压缩,占据空间更少) | 需要更多的内存和存储,它会在主内存中建立其专用的缓冲池用于高速缓冲数据和索引 |
可移植性 | 数据以文件形式存储,跨平台转移方便 | 所有表都保存在同一个数据文件(也可能是多个文件),相对来说不好备份 |
引擎选择
选择密集还是更新密集,MyISAM读操作性能更好,InnoDb写操作更好
并发度如何,InnoDB支持事务,并发下表现更好
是否需要外键支持
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:python 用python写一个骰子游戏
- 下一篇:Linux 安装mysql