表結構如下:如何通過bigdata提高查詢速度? Mysql的
當我運行此查詢時,執行時間約爲2-3分鐘:
select id,name,infohash,files from tb_torrent where id between 0 and 10000;
只是有超過20萬的數據,這是爲什麼執行速度如此之慢?以及如何解決它?
表結構如下:如何通過bigdata提高查詢速度? Mysql的
當我運行此查詢時,執行時間約爲2-3分鐘:
select id,name,infohash,files from tb_torrent where id between 0 and 10000;
只是有超過20萬的數據,這是爲什麼執行速度如此之慢?以及如何解決它?
不必要的使用BIGint不足以解釋緩慢。我們來看看其他問題。
那個「鑰匙」圖標是否意味着在id
上有索引?偶爾是PRIMARY KEY
?
ENGINE
正在用什麼?如果它是MyISAM,那麼你有PK沒有與數據「聚集」的缺點,從而使得10K查找速度變慢。
你會用10K行做什麼?考慮網絡成本。而客戶端的內存成本。
但也許這是真正的問題...如果這是InnoDB,並且如果TEXT
列是「大」,那麼值存儲爲「關閉記錄」。這導致另一個磁盤命中以獲取任何大的文本值。將它們更改爲VARCHAR(...)
的一些現實最大值。
你有多少RAM? innodb_buffer_pool_size
的值是多少?你有兩次查詢時間嗎? (第一次是I/O綁定;第二個可能是正在緩存中。表有多大(以MB或GB爲單位)?
哦,你真棒!!!,非常感謝,正如你所說的問題是網絡成本。我的服務器只支持1M,所以在傳輸10K數據時就是這麼解決。 :) –
'20W +'?這裏的'W'代表「webscale」 ? – zerkms
只是200000 ..對不起,我會改變這一點,說清楚。 –
是20東西還是2萬?仍然不清楚... –