入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

MySQL之引擎

创建时间:2017-08-08 投稿人: 浏览次数:468

MySQL之引擎

引擎种类

  • FEDERATED

  • MRG_MYISAM

  • MyISAM

  • BLACKHOLE

  • CSV

  • MEMORY

  • ARCHIVE

  • InnoDB

  • PERFORMANCE_SCHEMA

  • 输入show storage Engines,可以看到当前mysql的所有引擎,本文主要讲常用的两种索引MyISAM和InnoDB

  • MySQL之引擎

引擎使用

  • 查看表的引擎,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;

比较

MyISAMInnoDB
文件三个文件组成。.frm(存储表定义).MYD (存储数据文件)。.MYI (存储索引)。所有的表都保存在同一个数据文件中(也可能是多个文件,或者是独立的表空间文件),InnoDB表的大小只受限于操作系统文件的大小,一般为2GB。
外键不支持支持
事务不支持支持
自增长列必须是索引列,不需要一定是组合索引的第一列必须是索引,如果是组合索引,必须是组合索引的第一列
查找行数存储了表的行数,查找时候很快必须扫描全表
增删改查select更适合insert 和 update更适合
表锁既支持行锁也支持表锁
删表重建表一行一行删
存储空间表支持3种存储格式,静态表(默认存储格式,每条记录固定长度),动态表(每条记录不是固定长度,存储的空间减少了),压缩表(每条记录被单独压缩,占据空间更少)需要更多的内存和存储,它会在主内存中建立其专用的缓冲池用于高速缓冲数据和索引
可移植性数据以文件形式存储,跨平台转移方便所有表都保存在同一个数据文件(也可能是多个文件),相对来说不好备份

MySQL之引擎

引擎选择

  • 选择密集还是更新密集,MyISAM读操作性能更好,InnoDb写操作更好

  • 并发度如何,InnoDB支持事务,并发下表现更好

  • 是否需要外键支持

声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。