1.在经常需要搜索的列上创建,可以加快搜索速度。(在一颗树查询即可返回数据?)

2.在经常使用where子句中的列上面创建,加快条件的判断速度。

3.在经常需要排序的列上面创建,因为索引已经排序,这样可以直接使用索引的排序,加快排序查询时间。

4.对于中到大型表创建索引都是非常有效的,但对于超大型表创建索引成本较大,不建议使用。

5.在经常用在连接的列上创建索引,这些列一般都是外键,可以加快连接速度。

6.避免在where字句中对字段施加函数,这样会造成无法命中索引。

7.在使用innodb时使用与业务无关的自增主键作为主键,即逻辑主键,而不要使用业务主键。

8.最好将需要设置主键的列设置为NOT NULL,因为null需要更多的储存空间,而且某些运算null不能参与。

9.删除长期不使用的索引,不使用的索引会消耗不必要的性能,Mysql5.7可以通过查询sys库的chema_unused_indexes视图来查询长期未使用的索引。