mySQL分区

时间:2012-12-31 13:14:44

标签: mysql performance partitioning

我的osCommerce安装了一个拥有140k产品且product_description表大小约为 300MB 的网站。页面加载花费了15秒到 20秒,为了测试目的,我将表格削减到100MB,现在它似乎正常工作。

所以我决定使用mySQL分区并制作

PARTITION BY KEY()
PARTITIONS 10;

在这次改变之后我测试了它,但没有改变。

现在我决定将数据库表拆分为3个或更多,名称如下

 product_description1
 product_description2
 product_description3
 ...
 ...

我做错了吗?为什么mySQL分区不影响性能或速度?请建议。

2 个答案:

答案 0 :(得分:2)

如果您没有可以提供帮助的线索,请不要机械地应用分区。先做通常的事情:索引调整。

从分区中获得的收益完全取决于查询模式。我怀疑你的查询没有从中受益。但他们肯定会受益于正确的指数。

答案 1 :(得分:1)

除非您对分区架构非常有意和聪明,否则您将通过引入分区来伤害性能,而不是帮助它。

在尝试提高性能时,您需要做的第一件事就是分析您的查询。通过这样做,您可能会发现通过一些索引调整和/或一些服务器配置调整,您可以获得所需的性能提升。

300mb不是一张非常大的桌子。但是根据您的查询,它可能会将大量的表分成内存。如果未正确调整MySQL内存参数,则可能会过早地交换磁盘,从而使查询速度变慢。