Ich habe eine Anfrage geschrieben. Es funktioniert besser. Aber derzeit haben alle Tabellen 100.000 Zeilen und eine meiner Abfragen gibt zu langsam zurück. Können Sie mir vorschlagen, wie ich meine Abfrage optimieren kann?
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
Bitte beachten Sie, dass die „Patienten-ID“ hier Varchar ist.
这可能运行得更快:
这些索引可能有帮助:
由于
OR
优化不佳,可能最好为communicate_with_pt
选择 NULL 或空字符串(以避免对两者进行测试)。