数据库 两个简单实用的表级优化方法

analyze table 表名;    //分析和存储表的关键字分布

check table 表名;  //检查一个或多个表是否有错误

optimize table 表名;  //如果含有可变长度行的表如果进行了很多更改,则会出现比较多碎片。

索引不能使用的原因:

(1)以%开头的LIKE查询不能够利用B-Tree索引  : select * from actor where last_name like '%NI%' 应(select * from (select actor_id from actor where last_name like '%NI%')a, actor b where a.actor_id=b.actor_id)

(2)数据类型出现隐式转换  :select from actor where last_name = 1 应('1')

(3)复合索引情况下,假如查询条件不包含索引列最左边部分,即不满足最左原则

(4)如果Mysql估计使用索引比全表扫描慢,则不适用索引。

(5)用or分割开的条件,如果or前的条件中的列有索引,而后面的列中没有索引,那么涉及的索引都不会被用到。

原文地址:https://www.cnblogs.com/tuifeideyouran/p/4398596.html