2017-08-29 52 views
0

表結構如下:如何通過bigdata提高查詢速度? Mysql的

enter image description here

當我運行此查詢時,執行時間約爲2-3分鐘:

select id,name,infohash,files from tb_torrent where id between 0 and 10000; 

只是有超過20萬的數據,這是爲什麼執行速度如此之慢?以及如何解決它?

+2

'20W +'?這裏的'W'代表「webscale」 ? – zerkms

+0

只是200000 ..對不起,我會改變這一點,說清楚。 –

+1

是20東西還是2萬?仍然不清楚... –

回答

1

不必要的使用BIGint不足以解釋緩慢。我們來看看其他問題。

那個「鑰匙」圖標是否意味着在id上有索引?偶爾是PRIMARY KEY

ENGINE正在用什麼?如果它是MyISAM,那麼你有PK沒有與數據「聚集」的缺點,從而使得10K查找速度變慢。

你會用10K行做什麼?考慮網絡成本。而客戶端的內存成本。

但也許這是真正的問題...如果這是InnoDB,並且如果TEXT列是「大」,那麼值存儲爲「關閉記錄」。這導致另一個磁盤命中以獲取任何大的文本值。將它們更改爲VARCHAR(...)的一些現實最大值。

你有多少RAM? innodb_buffer_pool_size的值是多少?你有兩次查詢時間嗎? (第一次是I/O綁定;第二個可能是正在緩存中。表有多大(以MB或GB爲單位)?

+0

哦,你真棒!!!,非常感謝,正如你所說的問題是網絡成本。我的服務器只支持1M,所以在傳輸10K數據時就是這麼解決。 :) –