1

クライアントが設計したシステムがあり、テーブルは元々、数年間で 10 ギガ (おそらく 1000 万行) を超えることは想定されていませんでした。彼らは考えていたよりも多くの情報をインポートし、1 か月以内にテーブルは最大 208 ギガ (9 億行) になりました。

MySQL の経験はほとんどなく、Microsoft SQL の経験は豊富です。実行されるクエリがテーブルとインデックス全体を使用する必要がないように、クライアントが複数のファイルにまたがるデータベースを持つことを可能にする MySQL の何かがありますか? テーブルには簡単に分割できるフィールドがありますが、これを行う方法がわかりませんでした。

私が解決しようとしている主な問題は、このテーブルからの検索クエリです。挿入はすべてバックエンド サービスによって行われるため、大したことではありません。テーブルが約 2 ギガ (600 万行) で、クエリに 1 秒もかからないテスト システムがあります。この同じクエリを本番システムで実行すると、20 秒かかります。問題を引き起こしているのはテーブルのサイズだけです。このクエリ専用に作成されたこのテーブルにはインデックスがあり、EXPLAIN を使用してそれを使用しています。

他にご提案/ご質問がございましたら、お気軽にお尋ねください。

4

2 に答える 2

1

前述のパーティショニングに加えて、tuning-primerスクリプトを実行して、mysql 構成が最適であることを確認することもできます。

于 2012-12-12T13:59:59.170 に答える
1

パーティショニング、特に data_directory と index_directory を設定する create table の部分を使用します。

これらのオプションを使用すると、必要に応じてパーティションを別のドライブに配置できます。ただし、通常は、各クエリで使用できるキーでパーティション分割するだけで十分です。

于 2012-12-12T13:47:41.723 に答える