2013-08-24 46 views
0

優化MySQL的SELECT我從這個表做定期從龐大的表

SELECT * FROM sensor_data_1sec LIMIT 491160, 30 

http://test.dev.brown.sk/sensor_data_1sec.zip

它tooks約0.06S。我認爲這太多了。 MySQL服務器是我與英特爾酷睿i7,8 GB RAM的PC上,Windows 7的

採取phpMyAdmin的上一看: enter image description here

當然花了很多時間很少,當它被緩存。但是有可能使它更快解決嗎?

+0

您的問題中的查詢與屏幕截圖中的查詢不同,您有一個不屬於的「WHERE」。 – Barmar

+0

查詢中有什麼優化?它沒有連接條件,沒有WHERE測試。 – Barmar

+0

phpMyAdmin說它花了0.0269s,而不是0.06s。你似乎錯過了一個數字。所以它比你想象的快兩倍。 – Barmar

回答

1

百分之六(或百分之二百)的一秒是罰款。基本的規則是用戶不應該等待太久,我通常會在半秒鐘內完成。

有沒有什麼事情可能讓你困擾的0.06s,如果你知道它會這麼慢? :-)

另一方面,假設查詢中沒有排序子句的結果集中的特定順序是不明智的。通常也希望明確選擇列而不是使用*

+0

在編輯之前,你是對的,phpMyAdmin說2百分之一,而不是百分之六。 – Barmar

+0

@Barmar,我認爲php管理員是爲了比較,OP明確指出0.06。然而,無論是0.02還是0.06都沒關係,它仍然非常快。我會編輯以清楚說明,謝謝。 – paxdiablo

+0

我同意這一點,+1。 – Barmar

0

由於沒有進行深度掃描,速度很慢。 LIMIT中的大偏移很糟糕,如果運行EXPLAIN,您會看到它需要一個臨時表來處理這個問題。這個臨時文件是基於磁盤的,因爲它需要關閉491190條記錄的內存。所以你現在正在殺死MySQL的性能。