### 数据表引擎
一.数据表引擎类型:innodb、MyISAM、CSV、Memory、Archive、Blockhole.
主流引擎innodb与MyISAM之间区别、联系
1.char
是定长的,根据定义的字符串长度分配足量空间,根据需要采用空格进行填充方便比较,适合存储很短的字符串或者所有值都设置同一个长度,长度超过设定的长度,会被截断。
2.varchar
用户存储可变长字符串,比定长类型更加节省空间
使用一个或者俩个额外字节记录字符串的长度,列长度小于255字节用一个字节表示,否者俩个
长度超过设定的长度,会被截断
3.联系
对于经常变更的数据,char比varchar更好,char不容易产生碎片
对于非常短的列,char比varchar在存储空间上更有效率
只分配真正需要的空间,更长的列会消耗更多的内存
1.优点
大大减少服务器需要扫描的数据量
帮助服务器避免排序和临时表
将随机I/O变顺序I/O
大大提高查询速度,降低写的速度,占用磁盘空间
2.索引类型
普通索引
主键索引
唯一索引
组合索引
外键索引
全文索引
3.索引创建原则
最适合索引的列是出现在where子句的列,或者连接子句中的列,而不是出现在select的关键字后的列
索引列的基数越大,索引效果越好
对字符串进行索引,应指定一个前缀长度,可以节省大量的索引空间
根据情况创建复合索引,复合索引可以提高查询效率
避免创建过多索引,索引会额外占用磁盘空间,减低写操作效率
主键尽可能选择较短的数据类型,可以有效减少索引的磁盘占用,提高效率
4.索引注意实现
复合索引遵循前缀原则
like查询%不能在前,可以使用全文索引
column is null 可以使用索引
如果估计使用索引比全表扫描更慢,放弃使用索引。