ホームページ >データベース >mysql チュートリアル >単一テーブルのインデックスと複数の小さなテーブル: パーティショニングは大規模なデータセットにとって最適なソリューションですか?
データベースの最適化: 単一テーブルのインデックス作成とインデックスのない複数の小さなテーブルの評価
データベース最適化の領域では、インデックスを利用するかどうかの議論が行われます。インデックスを持つ単一のテーブル、またはインデックスのない複数の小さなテーブルが頻繁に発生します。このトピックを明らかにするために、特定のシナリオを詳しく見てみましょう。
シナリオ:
20,000 人のユーザーと 3,000 万行を含む「statistics」という名前のテーブルについて考えてみましょう。 user_id、アクション、タイムスタンプなどの列。主なクエリ操作には、user_id に基づいたデータの挿入と、特定の user_id のデータの取得が含まれます。
質問:
さらに多くのことはありますか?単一の「統計」テーブルのインデックスを活用するのと、インデックスの必要性を排除してユーザーごとに個別の「統計」テーブルを選択するのはどちらが効率的ですか?
答え:
20,000 のテーブルを使用することは、メンテナンスの問題やパフォーマンスのボトルネックにつながるため、推奨されません。代わりに、MySQL パーティショニングは、データの整合性を犠牲にすることなくパフォーマンスを最適化するソリューションを提供します。
MySQL パーティショニング:
<code class="sql">CREATE TABLE statistics ( id INT AUTO_INCREMENT NOT NULL, user_id INT NOT NULL, PRIMARY KEY (id, user_id) ) PARTITION BY HASH(user_id) PARTITIONS 101;</code>
パーティショニングの利点:
考慮事項:
以上が単一テーブルのインデックスと複数の小さなテーブル: パーティショニングは大規模なデータセットにとって最適なソリューションですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。