0

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

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

PARTITION BY KEY()
PARTITIONS 10;

在此更改之后,我对其进行了测试,但没有任何更改。

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

 product_description1
 product_description2
 product_description3
 ...
 ...

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

4

2 回答 2

2

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

您从分区中获得的收益完全取决于查询模式。我怀疑您的查询不会从中受益。但他们肯定会从正确的索引中受益。

于 2012-12-31T13:45:58.960 回答
1

除非你对你的分区模式非常有意识和聪明,否则你会通过引入分区来损害性能,而不是帮助它。

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

300mb 不是一个很大的表。但根据您的查询,它可能会将大量表吞入内存。如果您的 MySQL 内存参数没有正确调整,您可能会过早地交换到磁盘,从而使您的查询非常慢。

于 2013-01-01T10:09:41.170 回答