0

2 つの真に巨大なテーブル (どちらも 1 億行以上) を結合する MySQL データベース クエリの応答を高速化する必要があります。2 つの問題があります。1 つは、クエリが遅いことです。2 つ目は、結果セットのサイズは 0 行から数千行まで可能です。理想的には、クエリを高速化し、結果セットのサイズを (調整可能な) 最大値に制限したいと考えています。

テーブルや何かを分割するお気に入りの方法を誰かが持っていますか?どこでこれを達成できますか?

ここでアイデアを探しているだけです。

4

2 に答える 2

2

まず、 を使用explainして、インデックスが使用されているかどうかを確認します。1 億行の場合でも、インデックスが適切に作成されたテーブルは非常に優れたパフォーマンスを発揮します。explain何が言いたいのか理解するのに少し時間がかかりますが、それだけの価値があります。

それでも分割する必要がある場合は、 mysql partitioningを調べることをお勧めします。explain partitionsを使用し、クエリが少数のパーティションのみを調べていることを確認してください。

于 2013-10-29T22:00:40.710 に答える
1

を使用して、結果セットのサイズを制限できますLIMIT

SELECT *
FROM YourTable
LIMIT 50;

レコード 1 ~ 50 を表示します

SELECT *
FROM YourTable
LIMIT 50, 50;

レコード 51 ~ 100 を表示します

クエリの高速化に関しては、より多くの情報が必要です。結果をページングする場合は、長いクエリを 1 回実行して結果をテーブルに配置し、そこから結果をページングします。

于 2013-10-29T21:58:56.557 に答える