0

6000を超えるテーブル(アイテム[id、name、color、sizeなど])が1つあります。最大で10000に達すると思います。その表には、基本的にアイテムに関する情報が含まれています。また、5つの恒常的な倉庫のテーブルと0から7つの一時的な倉庫のテーブルがあります。これらのテーブルは次のようなものです(id、item_id、quantity)。これらの倉庫を1つのテーブル(id、item_id、quantity、storehouse_id)に結合して、そのデータベースを正規化しようとしました。そのため、自己結合を使用してすべての倉庫から複数のアイテムを検索する場合、検索が6〜10秒非常に遅くなりました。次に、アイテムをその新しく作成されたデータベース(id、name、color、sizeなど、storehouse1_quantity、storehouse2_quantityなど)と組み合わせることにしました。これにより、リクエストに対するクエリは0.1秒未満になりました。しかし、現在、データベースは非常に非正規化されています。倉庫には2000個以下のアイテムがあり、ほとんどが500個未満なので、これ以上の方法がなければ、私はそれと一緒に暮らすことができます。データベースをより論理的にし、保守しやすくするためにどこを見ればよいのかわかりません。どんな助けでも大歓迎です!前もって感謝します!

4

1 に答える 1

1

さて、正規化アプローチは「正しい」方法です。DB エンジンはこれに対処するように構築されているため、インデックスの配置を調べ始めます。多くのルックアップ/結合がある場合、通常、MySQL がすべてのテキストを処理する必要がないように、インデックスが必要です。

于 2012-05-15T18:32:13.523 に答える