为什么数据库表要建立索引呢?我们的java程序里在写sql语句的时候怎么没有用到索引啊?
/*==============================================================*/
/* Index: Index_uid                                             */
/*==============================================================*/
create index Index_uid on file
(
   uid
);
但是写sql的时候貌似从来没用到过啊?它到底有什么作用,怎么用呢??

解决方案 »

  1.   

    索引由MYSQL在执行查询语句的时候自行决定使用。不需要用户指定。
      

  2.   

    谢谢大侠!
    /*==============================================================*/
    /* Index: Index_uid                                             */
    /*==============================================================*/
    create index Index_uid on file
    (
       uid
    );
    是不是sql查询语句里,查询条件里有uid的时候,我定义的索引Index_uid才会起作用?
    如果sql查询里,查询条件里没有uid字段,比如“select * from UserInfo where age>20”,那么我定义的索引Index_uid是不是就不起作用了啊?还有,既然不用java指定,我怎么知道索引发挥作用了呢?
    据说使用了索引的数据表,查询起来比没有使用的要快。
    新手有点罗嗦,请大家不要嫌烦,谢谢
      

  3.   

    可以这么理解。绝大多数情况下是。Index_uid不起作用。你需要在MYSQL工具中直接用EXPLAIN命令看执行计划。
      

  4.   

    如果有兴趣了解,建议看MYSQL手册中下面章节然后再讨论。