[英]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.