2017-08-29 54 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数据时就是这么解决。 :) –