2011-05-21 5 views
0

le code ci-dessous est de travail, mais il faut beaucoup de temps pour exécuter parfois l'arrêt de code PHP, mais il fonctionne bien avec l'outil graphique mysql (car il peut attendre). Y at-il une méthode pour le rendre plus rapide j'utilise index dans une colonne il aide Y at-il une méthode pour créer une table si je crée une table je pense que cela améliorera les performances mais cette table doit être mise à jour suggérermysql améliorer performance en créer une nouvelle table

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 

Répondre

1

Collate est une opération coûteuse. Donc, en supposant que member a plus de lignes que province, essayez de rassembler la table avec le plus petit nombre de lignes:

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

Il serait encore mieux de donner toutes les colonnes de toutes les tables le même classement.

Questions connexes