簡體   English   中英

從巨大的表中優化MySQL SELECT

[英]Optimizing MySQL SELECT from huge table

我經常做

SELECT * FROM sensor_data_1sec LIMIT 491160, 30

來自此表: http : //test.dev.brown.sk/sensor_data_1sec.zip

大約需要0.06s。 我覺得太多了。 MySQL服務器在裝有Intel Core i7、8 GB RAM,Windows 7的PC上。

看看phpMyAdmin: 在此處輸入圖片說明

當然,緩存它的時間很少。 但是有可能使其更快地被緩存嗎?

百分之一秒(或百分之一秒)就可以了。 基本規則是,用戶不應等待太久,我通常將其等待半秒鍾。

在您不知道它會這么慢的那段時間里,您可能會在0.06s的時間內實現某些目標嗎? :-)

順便說一句,從沒有排序子句的查詢中假設結果集中的特定順序是不明智的。 通常也更喜歡顯式選擇列而不是使用*

這很慢,因為未進行深度掃描。 LIMIT中的較大偏移量非常糟糕,如果您運行EXPLAIN,您將看到它需要一個臨時表來處理此問題。 而且此臨時磁盤基於探針磁盤,因為它需要關閉491190條記錄的內存。 因此,您現在正在喪失MySQL性能。

暫無
暫無

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

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