0

osCommerceを140kの製品があり、product_descriptionテーブルのサイズが約300MBのWebサイトにインストールされています。ページの読み込みには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 に答える