1.联查4个表,from语句里面表的顺序的不同,查询的速度就不同,比如
SELECT * FROM table1,table2,table3,table4 WHERE ...

SELECT * FROM table4,table2,table3,table1 WHERE ...
查询结果的速度有很大的区别(WHERE语句一样)
这是为什么,怎么能让查询的速度最快?2.SELECT * FROM table1,table2
WHERE ....
AND table1.somecolumn LIKE '97%'

SELECT * FROM table1,table2
WHERE ....
AND table1.somecolumn LIKE '%97%'
的查询速度快,这是为什么,感觉应该第一个快才对啊。谢谢

解决方案 »

  1.   

    不台清楚,感觉上后查的会比较快,因为可以利用buffer
      

  2.   

    第2个问题通常情况下like '97%'要比like '%97%'快,但是如果那个字段上有索引,索引没有被分析或者统计值没有更新过,并且97开头的记录比较多,那么会出现like '97%'要比like '%97%'慢的情况。
      

  3.   

    那个字段确实有索引,而且所有记录都是以97开头的,“索引没有被分析或者统计值没有更新过”是什么意思
    而且一个更奇怪的现象是
    where someTable.someColumn like '9703%' 的查询速度
    没有
    where someTable.someColumn like '9703%' OR someTable.someColumn like '9703%'
    的查询速度快,这是为什么?
      

  4.   

    理论上'97%'要比like '%97%'快
      

  5.   

    1. from 的最后一个表是作为驱动表的,数据量越少的表作为驱动表进行连接越好
    2. 索引是否分析或者统计信息是否是最新的