一张表有几个索引,他会使用那一个呢,如何知道的!

解决方案 »

  1.   

    数据库索引可以有十来多列,凡是index(fieldname)该字段就会被加上索引,然后在select的时候就会省时间,提高效率。
    而你所说的会用那一个,这是不需要关心的问题,只要加索引就会加快效率。
    但是表的主键只会有一个,并且是非空的,唯一的。但和索引没什么关系。
      

  2.   

    MYSQL分根据WHERE后的条件,及ORDER, GROUP等中的字段,通过分析来选择其中的一个索引来利用。
      

  3.   

    MYSQL分根据WHERE后的条件,及ORDER, GROUP等中的字段,通过分析来选择其中的一个索引来利用。
      

  4.   


    你可以用 EXPLAIN select ... 得到执行计划,其中会说明MYSQL在哪一步用的什么索引。可以强制使用某个索引, 参考手册中的SELECT 语法中的 [STRAIGHT_JOIN]
     
    tbl_name [[AS] alias] [index_hint_list]index_hint_list:
        index_hint [, index_hint] ...index_hint:
        USE {INDEX|KEY}
          [{FOR {JOIN|ORDER BY|GROUP BY}] ([index_list])
      | IGNORE {INDEX|KEY}
          [{FOR {JOIN|ORDER BY|GROUP BY}] (index_list)
      | FORCE {INDEX|KEY}
          [{FOR {JOIN|ORDER BY|GROUP BY}] (index_list)index_list:
        index_name [, index_name] ...