将大型MySQL表拆分为多个部分

时间:2014-11-19 03:25:42

标签: mysql

我有一个大的READONLY MySQL表,它有2亿行。它只有两列,我也正确索引它。它需要每秒处理多达5000个请求,目前我得到30:D ...我想问我是否可以将已排序的数据拆分为十个表,并在我的servlet中有一堆条件将请求重定向到正确的表??

另外,我将innodb池大小增加到7G。是否有任何其他配置可以帮助我获得更好的性能

更新:有两列:req和res。索引是req。 只使用了一个查询: 从表中选择res,其中req = x;

1 个答案:

答案 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
它还取决于表的结构,数据类型,数据索引,查询类型......