簡體   English   中英

MySQL查詢優化速度

[英]Mysql Query Optimization for Speed

有關高級SQL查詢的新聞,請提前謝謝!

我有2個表格,監視器和統計數據。 統計信息表是一百萬加行。 我查找所需的監視器,然后在統計信息表中查詢最新條目。 由於統計信息表的大小-緩慢,超過15秒。

select `Service`.`monitors`.`host` AS `host`,
       `Service`.`monitors`.`port` AS `port`,
       `Service`.`monitors`.`alias` AS `alias`,
       (select `Service`.`stats`.`value` 
        from `Service`.`stats` 
        where (
            concat('monitor',
                 cast(`Service`.`monitors`.`id` as char charset utf8)) 
            = convert(`Service`.`stats`.`series` using utf8)) 
        order by `Service`.`stats`.`key` desc limit 1) AS `val` 
from   `Service`.`monitors` 
where  (`Service`.`monitors`.`host` like '%te1%')

stats.key值是unix時間戳,但該列是INT,由於各種原因,我無法將其轉換。 MAX INT的工作速度快於極限1嗎?

關於查詢結構的任何建議都非常感謝!

問題在於,您的數據在第一手資料中組織得不好。 如果您需要在每個位置進行操作並插入子查詢,則MySQL優化器將永遠不會找到優化查詢並掃描較少行以獲取結果的方法。

暫無
暫無

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

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