1.作为排序条件的“order by”后面的字段时如何使用索引文件?如:“select * from Table where Field1="aaa" and Field3="bbb" order by Field2, Field1”,这个语句使用索引文件包含的字段是“Field1, Field2, Field3”还是“Field1,Field3”呢?2.联合查询的原理是什么呢?如“select * from Table1, Table2 where Table1.Field1 = '' and Table2.Field1 = '' and Table1.Field3 = '' and Table1.Field2 == Table2.Field2”,要如何为这个语句创建索引文件呢?这些问题是我看过手册后的疑问,并不是没有看手册,所以还希望大家多些指点,少些建议(如“建议查手册”或“买本XXX书看”)。另外还希望高手能给一些使用索引的建议。

解决方案 »

  1.   

    1.可以用explain+select看一看MYSQL到底是用哪个索引.我试了一下,如果只有“Field1, Field2, Field3”,“Field1,Field3”这两个索引组合在的话,MYSQL用的是第二个,但如果加多一个索引“Field1,Field3,Field2”的话,那MYSQL用的是新建的那个。2.对于这个问题,我也一直想问,当这样写联合查询时,MYSQL到底是先join再where还是先where再join.如果是我建,我会在Table2建(Field2,Field1),在Table1建(Field1,Field3);
      

  2.   

    1.只取 Field1,Field3
    2.Table2建(Field2,Field1),在Table1建(Field1,Field3,Field2);解答完毕。