0
我有2個表,headers
有2百萬行,而files
有30行。跨越多個表的索引列
我有一個查詢,假設獲得每個目錄的標題總數。
的SQL看起來如下:
SELECT files.dir_id, COUNT(*) AS "TOTAL"
FROM headers
LEFT JOIN files ON headers.file_id = files.file_id
GROUP BY files.dir_id
目前,執行上述SQL正在20秒。我如何索引它以使其更快?
我試過CREATE INDEX IF NOT EXISTS HEADERS_FILE ON HEADERS(FILE_ID)
。這使得GROUP BY file_id
得到即時響應(無需加入文件表)。但是,它不會改進上述原始查詢的性能。
我在想像CREATE INDEX INDEX_NAME ON HEADERS, FILES(FILE_ID, DIR_ID)
應該工作。但我無法創建這樣的索引。
感謝您的幫助。謝謝!
這應該是'headers LEFT JOIN files',而不是'files LEFT JOIN headers'嗎? –