分析什么这几个值,我们可以不查看当前索引的使用情况:
handler_read_first:索引中第一条被读的次数。如果没有低且,它来表示服务器正想执行大量全索引扫描;或者,selectcol1from
foo,可以假设col1有索引(这个值越低越好)。
handler_read_key:要是索引正在工作的话,这个值属於一个行被索引值读的次数,如果不是值越低,可以表示索引得到的性能改善不高,毕竟索引不你经常使用(这个值越高越好)。
handler_read_next:明确的键顺序读下一行的请求数。假如你用范围约束力或要是不能执行索引扫描来网上查询索引列,该值增加。
handler_read_prev:明确的键顺序读前一行的请求数。该读方法主要用于360优化order。
handler_read_rnd
:参照固定设置位置读一行的请求数。如果没有你正负责执行源源不断可以查询并要对结果进行排序该值较高。你肯定在用了大量不需要mysql扫描后整个表的查询或你的连接就没正确的在用键。这个值较高,意味着什么运行效率低,应该要成立索引来补救。
handler_read_rnd_next:在数据文件中读下一行的请求数。如果没有你正参与大量的表扫描,该值较高。通常那说明你的表索引不对的或写入文件的查询没有利用索引。
假设index(a,b,c)最左前缀匹配:模糊查询时,可以使用%自动分配时:'a%‘会不使用索引,'%a‘不可能建议使用索引条件中有有.,索引应该不会不生效abothc,a才生效,c不生效bbutc,都不未生效aandbrlm5andc,a和b生效时间,c不生效时间。
1.unique关键字建真正索引mysqlgtcreatetable`wb_blog`(-gt`id`smallint(8)unsignednotnull,-rlm`catid`smallint(5)unsignednotnulldefault0,-r26`title`varchar(80)notnulldefault,-gt`content`textnotnull,-gtprimarykey(`id`),-gtuniquekey`catename`(`catid`)-gt)如果没有不会建表了,也可以用100元以内语句建mysqlgtcreateuniqueindexcatenameonwb_blog(catid)2.联合索引altertable`tasks`addindex`testabc`(`title`,`created`)3合作同样索引(举例有这个需求,在同月同日内不能不能建两个tiltle完全不一样的任务)altertable`tasks`adduniqueindex`testabc`(`title`,`created`)数据库建索引的科学关人命数据库性能,索引也不是什么多多益善。