J'ai rédigé une requête. Cela fonctionne mieux. Mais actuellement, toutes les tables comportent 100 000 lignes et l'une de mes requêtes revient trop lentement. Pouvez-vous me suggérer comment optimiser ma requête ?
select * from tbl_xray_information X WHERE locationCode = (SELECT t.id from tbl_location t where CODE = '202') AND ( communicate_with_pt is NULL || communicate_with_pt='') AND x.patientID NOT IN (SELECT patientID FROM tbl_gxp_information WHERE center_id = '202') order by insertedON desc LIMIT 2000
Veuillez noter que "l'identifiant du patient" ici est varchar.
Ceci pourrait courir plus vite :
Ces index peuvent être utiles :
Étant donné que
OR
est mal optimisé,OR
优化不佳,可能最好为communicate_with_pt
il serait peut-être préférable de choisir NULL ou la chaîne vide pourcommuniquer_avec_pt
(pour éviter de tester les deux).