数据库学得不深,之前没在意,也没想过这个问题吧
比如,我有一个表:
Test
有三个字段:
id(自动增长的主键)
no(编号,非唯一性,可以相同)
time(时间,唯一,不可以相同)现在我设置索引,有如下两种方式:
一、分别设置索引,即
no    Normal
time  Unique二、设置复合索引,即
no_time Unique上面这两种方式,由于 本人数据量不大,查询test表时(查询时,当然有用到no,和time字段了),感觉不出有什么差别,但不如,如果数据库,足够大时,这两种,是不是性能什么的,还是一样的呢?即没什么区别呢?
请大虾指教,谢谢

解决方案 »

  1.   

    当需要 select * from table1 where no=123 order by time的时候,复合索引会有明显差别。
    所谓的索引仅是针对某些查询进行优化,不可能一个索引是万能的对所有查询均有优化作用
      

  2.   

    什么明显差别啊?
    这种情况下,到底是用组合索引好,还是分别索引好呢?复合索引。具体是用复合索引还是单独的索引,需要看查询习惯,具体问题需要具体分析,关键是要了解MYsql 是怎样使用复合索引的。
      

  3.   

    优化根据具体的SQL语句来进行
    唯一字段上是有索引的,如果有多个条件(排序),一般用复合索引