存储引擎:也叫表类型,相当于 table 的存储机制、索引方案等配套相关功能。
不同的存储引擎,由于处理方式不同,带来的功能or优化不一样。
要根据实际需求,选择合理的引擎。
· 存储类型: Myisam , InnoDB , BDB , Memory , Archive 。
· 默认的 table 类型是 InnoDB 。通过 my.ini 可以配置。不同版本的MySQL可能指定的默认版本不同。
· 创建、编辑 table 时,可以指定其存储引擎:
tip : engine myisam 定义的位置和 character set 一样,这两者都属于 table 的属性。
可以在创建表的时候,可以同时设置这两者,写法:engine myisam character set utf8 ;
1. InnoDB 与 Myisam 的区别:
① 保存文件的方式不同:InnoDB 一个表一个文件:tb_name.frm(存储结构),所有的InnoDB表都使用相同的InnoDB存储空间在保 存数据和索引;Myisam 一个表三个文件:tb_name.frm(结构),tb_name.myd(数据),tb_name.myl(索引);
② Myisam 支持索引压缩,InnoDB索引和数据是绑定保存,不压缩,体积大。
③ InnoDB 很多时候是行级锁,Myisam 是表级锁,前者的并发高。
④ InnoDB 不支持FULLTEXI类型的索引,支持事务、外键、数据完整性约束要强。
InnoDB在更新、删除上更优,Myisam 在查找、插入上更有优势。
2. 选择存储引擎的依据:
① 功能; ② 性能;