2011-05-21 80 views
0

下面的代碼是可行的,但它需要很長時間才能運行一段時間的php代碼,但它可以很好地與mysql圖形工具一起工作(因爲它可以等待)。有沒有什麼方法可以使它更快我在某些列使用索引它是否有任何方法來創建表,如果我創建表,我認爲它會提高性能,但這張表必須更新,也許一週一次什麼是好的做法建議mysql通過創建新表來提高執行效率

SELECT member.own, member.provincecode, province.PROVINCE_NAME, member.amphurecode, 
    amphur.AMPHUR_NAME, member.Sname, member.Ssurname, member.Hno, member.Moo, 
    member.Sex, member.tambol, member.dateofbirth, member.migratedate, 
    Year(Current_Date()) - Year(member.dateofbirth) AS y, 
    Year(Current_Date()) - Year(member.migratedate) AS m 
FROM member 
LEFT JOIN amphur ON (member.amphurecode 
COLLATE utf8_general_ci = amphur.AMPHUR_CODE) 
LEFT JOIN province ON member.provincecode 
COLLATE utf8_general_ci = province.PROVINCE_CODE 

回答

1

整理是一個昂貴的操作。所以假設member有更多的行比province,嘗試整理錶行的數量較少:

LEFT JOIN province ON member.provincecode 
= province.PROVINCE_CODE COLLATE <collation of member.provincecode> 

它甚至會更好,讓所有的表中的所有列相同的排序規則。