いいえ、できません。
理論的には、(site, product, value, id)
のインデックス これらのフィールドのサブセットにインデックスを作成するために必要なすべてのものがあります((product, value, id)
のインデックスを含む および(value, id)
。
ただし、セカンダリインデックスからのインデックスの作成はサポートされていません。
まず、MySQL
高速フルインデックススキャン(つまり、論理的ではなく物理的な順序でインデックスをスキャンする)をサポートしていないため、インデックスアクセスパスはテーブルの読み取りよりもコストがかかります。これはInnoDB
の問題ではありません 、テーブル自体は常にクラスター化されているため。
次に、これらのインデックスのレコードの順序は完全に異なるため、とにかくレコードを並べ替える必要があります。
ただし、MySQL
でのインデックス作成速度に関する主な問題 現場で注文を生成するということです(レコードを1つずつB-Tree
に挿入するだけです。 )事前にソートされたソースを使用する代わりに。 @Danielが述べたように、高速インデックス作成はこの問題を解決します。 5.1
のプラグインとして利用できます 5.5
にプリインストールされています 。