1

私は現在5つのテーブルを持っています:

trialSum
-------------
id    total
-------------
1     2000
2     1000
3     500

trialLand
-------------
id    total
-------------
1     1000
2     250
3     500

trialImp
-------------
id    total
-------------
2     250

trialBldg
-------------
id    total
-------------
1     1000
2     500

trial
---------------------
id    name     info
---------------------
1     xxxxx    xxxxx
2     xxxxx    xxxxx
3     xxxxx    xxxxx
4     xxxxx    xxxxx

試行テーブルには最も多くのエントリがあり、すべての「id」フィールドが互いに一致します。各テーブルには 7000 を超えるエントリがあります。次のような大きなテーブルを 1 つ作成しようとしています。

    trial
    ----------------------------------------------------------------------
    id    name     info    totalSum    totalLand    totalImp    totalBldg
    ----------------------------------------------------------------------
    1     xxxxx    xxxxx    2000        1000         0           1000
    2     xxxxx    xxxxx    1000        250          250         500
    3     xxxxx    xxxxx    500         500          0           0
    4     xxxxx    xxxxx    0           0            0           0

4 つの左結合を持つ巨大な MySQL クエリを実行すると、完了するまでに 40 分以上かかります。もっと簡単な方法があるはずです。ありがとう!

4

1 に答える 1

2

左結合は確かにこれを行うための良い方法だと思います。それらのid列にインデックスがありますか?インデックスを追加してみてください。速度が向上するはずです。EXPLAINを使用して、インデックスが適切に使用されていることを確認することを忘れないでください。EXPLAINの詳細http://www.dbtuna.com/article.asp?id=14

于 2013-01-04T16:23:07.687 に答える