查询是数据库中最频繁的操作。提高了查询速度可以有效的提高MYSQL数据库的性能。
通过对查询语句的分析,可以了解查询语句的执行情况。MYSQL中,可以使用
EXPLAIN语句和DESCRIBE语句来分析查询语句。
下面使用EXPLAIN语句来分析一个查询语句
表结构如下
EXPLAIN select s_name from student ----->全表扫描
针对s_name列建立一个单列索引
CREATE INDEX index_name on student(s_name)
再次执行 EXPLAIN select s_name from student
索引可以提高查询速度,但是有时候即使使用的是索引,但索引并不起作用
1.在查询中使用like关键字
如果匹配字符串的第一个字符为"%"时,索引失效,反之则生效
2. 在查询语句中使用多列索引,只有查询条件使用了使用了索引字段的第一个字段时,索引才会被使用
在birth和sex两列建立多列索引:CREATE index birth_sex_index on student(s_birth,s_sex)
3.查询中使用or关键字,如果or前后两个条件的字段都有索引时,索引生效,如果有一个列没有索引即失效
删除刚才的多列索引,这样会导致全表扫描