簡體   English   中英

MySQL搜索速度很慢,查詢或索引錯誤?

[英]MySQL search very slow, bad query or indexes?

我們的應用程序中有一個表格,它非常龐大。 輕松地百萬行。

結構基本上如下:

SERIES_ID | YEAR | DAY_SINCE_EPOCH | HOUR | MINUTE | VALUE

我們在YEAR和DAY_SINCE_EPOCH上都有索引。

問題是某些查詢非常慢,例如:

SELECT
 ...
WHERE
   SERIES_ID = 3 AND
   DAY_SINCE_EPOCH < 16000 AND
   YEAR = 2012
ORDER BY 
   DAY_SINCE_EPOCH DESC,
   HOUR DESC,
   MINUTE DESC
LIMIT 1

在具有2M行的表中,這大約需要10秒,而在具有18M行的表中,則需要20秒以上。

目的是在16000天之前找到系列3的最后一條記錄。YEAR = 2012可以加快查找速度。

所以我想知道,我們是否正確設置了索引? 也許沒有年份指數會更快? 或添加了SERIES_ID索引或類似內容?

或者只是重組查詢會有所幫助?

任何想法如何加快搜索將受到歡迎!

該索引可能會有所幫助:

> create index on your_table(series_id, day_since_epoch, year);

檢查這些條件

SERIES_ID = 3 AND
DAY_SINCE_EPOCH < 16000 AND
YEAR = 2012

當您更新表格時(例如,保存新記錄),然后將“ true / false”信息保存在“ bit”列上,然后像進行檢查一樣

where checked=1 .....

 SERIES_ID | YEAR | DAY_SINCE_EPOCH | HOUR | MINUTE | VALUE | checked

暫無
暫無

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

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