表结构如下:如何通过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万?仍然不清楚... –