@xxliixin1993
2016-06-18T20:38:56.000000Z
字数 399
阅读 1856
MySQL创建索引的规则
database
创建索引的原因
- 索引减少了需要扫描的数据量
- 索引可以帮助数据库避免排序和临时表
- 索引将随机I/O变为顺序I/O,快。
- 索引会让查询锁定更少的行。
每张表都有一个id自增主键字段
这样是因为顺序查找比较快,但在高并发负载的情况下,比如写多的双主模型,不适用,因为顺序插入会导致明显的锁争用,这时可以调整auto_increment,用SET @auto_increment=期望的步长
;
InnoDB的索引数据结构是B+树。
使用索引和创建索引的规则
- 在索引字段使用where id > 2而不是where id + 1 >3
- 有时需要索引很长的字符列,例如BLOB,TEXT或者很长的VARCHAR时 用前缀索引,因为MySQL不允许索引过长的列.这时取得前缀索引最好是唯一的
- 创建联合索引时,要将最常用的放在最左边。因为key(c1,c2,c3),where c2=1 and c3 =2 这样是不用索引的