[英]Optimizing simple SQL query?
問候朋友,
在我的MySQL數據庫中,我有“ MAB”表,其中包含有關基因ID(GI_ID)的信息以及其他一些與基因相關的信息。
“ MAB_CAN”表可以包含僅與癌症相關的基因ID(GI_ID)。
我使用以下SQL查詢從MAB表獲取癌症相關信息:
SELECT * FROM MAB WHERE `GI_ID` IN (SELECT `GI ID` FROM `MAB_CAN`)
此查詢大約需要14秒,太長了。(1605條記錄)。
但是以下獨立查詢需要很短的時間。
從
MAB_CAN
WHERE 1中選擇GI_ID
選擇*從
MAB
WHERE 1
優化我的第一個查詢的任何技巧?
嘗試這個
SELECT * FROM MAB
INNER JOIN MAB_CAN ON MAB.GI_ID = MAB_CAN.GI_ID
然后,您需要查看需要返回的列,您絕對不應真正使用SELECT *,而應返回所需列名稱的不同列表,例如SELECT Col1,Col2,Col3 FROM ...,這樣可以最大程度地減少返回的數據。
正如其他答案表明的那樣,如果查詢仍然很慢,則需要查看在MAB表的GI_ID字段中放置索引。
您可以從在MAB表的GI_ID列上創建索引開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.