我有一个大的READONLY MySQL表,它有2亿行。它只有两列,我也正确索引它。它需要每秒处理多达5000个请求,目前我得到30:D ...我想问我是否可以将已排序的数据拆分为十个表,并在我的servlet中有一堆条件将请求重定向到正确的表??
另外,我将innodb池大小增加到7G。是否有任何其他配置可以帮助我获得更好的性能
更新:有两列:req和res。索引是req。 只使用了一个查询: 从表中选择res,其中req = x;
答案 0 :(得分:-1)
SELECT fields
FROM table
ORDER BY index
LIMIT 0,20000
订单依次会以相同的方式订购您的数据。
限制版将为您提供一部分数据。
下次你可以查询:
SELECT fields
FROM table
ORDER BY index
LIMIT 20000,40000
等等等等
你可以做一个简单的应用程序来制作一个循环或类似的东西。
<强>更新强>
为了提高您的表现,您可以先做很多事情。这只会使线程的控制更快地返回到您的手中,实际上,它可以改善内存使用情况。您可以在以下位置查看更多相关信息:dev.mysql.com/doc/refman/5.5/en/limit-optimization.html
它还取决于表的结构,数据类型,数据索引,查询类型......