アイテムのテーブルがあり、それぞれにa_level、b_level、およびitem_idがあります。すべてのb_levelは1つのa_level専用です(例:b_level14はa_level2の「子」のみです)
何百万ものアイテムがあり、それらすべてが一度挿入されてから、SELECTのみが要求されたとします。
item_idに基づいてアイテムを選択する場合は、item_id列にインデックスを付ける必要があります。これにより、MySQLは数百万のアイテムすべてを表示しますが、これは悪いことです。私はすでにa_levelとb_levelの情報を持っているからです。したがって、特定のレベルに基づいてアイテムを選択し、その列にインデックスがある場合、MySQLは何百万ものアイテムすべてを検索する必要はなく、その特定のレベルのアイテムのみを検索する必要があります。
a_level、b_level(そしてもちろんitem_id)とSELECT WHERE a_level = b_level = item_id =の両方でインデックスを作成する場合、それは悪いことでしょうか?b_levelとitem_idのINDEXとSELECTWHEREb_level = AND item_id =だけで十分/最良の解決策になると思いますか?
それで、私はa_levelとb_level(私が言ったように任意のb_levelは1つのa_levelの「子」です)を持っているので、アイテムを拾うために作成される最も効率的なSELECTとINDEXは何でしょうか?