簡體   English   中英

如何縮短MySQL查詢的執行時間

[英]How to improve MySQL query execution time

我的查詢存在一個問題,它需要大約14秒鍾的時間來執行,因此我需要使其更快。

無論如何,我可以優化它嗎?

SELECT *
FROM large_table
WHERE (
INET_ATON( 'record number' )
BETWEEN INET_ATON( starting_number )
AND INET_ATON( ending_number )
)
LIMIT 0 , 30

即使對用作條件/過濾器的列進行了索引,由於INET_ATON()函數,仍將導致表的FULL SCAN。 嘗試這個。

    SELECT INET_ATON(`record number`)
    FROM large_table
    WHERE 
    'record number' 
    BETWEEN starting_number 
    AND ending_number 
    LIMIT 0 , 30

感謝大伙們 ! 我已經對Alex鏈接進行了研究,這是一個很好的解決方案,但是我不能將整數添加到我的所有400萬個IP地址記錄中,因為這很耗時。 我已經用http://php.net/explode解決了我的特定問題,我只是分解了IP地址,然后刪除了最后一個數字,然后在基於varchar的列上進行搜索,而我的查詢不到一秒鍾就得到了結果。 我目前正在使用此解決方案。 謝謝大家

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM