2011-02-19 11 views
3

MySQLテーブルのインデックスを並べ替えることは可能ですか? 私はそれに約20のインデックスを持つ大きなテーブルを持っていますが、私が数年のコースで作成したように、それらは論理的にはもう注文されていません。 私は彼らにテーブルの列と同じ順序を持たせたいと思います。 Navicatを使用していますが、リスト内でインデックスを上下に移動するオプションは表示されません。それも可能ですか?MySQL - テーブル内のインデックスの順序を並べ替えますか?

更新:私はちょうどPostgreSQLでは列の順序を変更することはできませんが、インデックスだけではわかりません!そして、私はビューを使用しなければならないと言っているすべての人々には、列の順序は重要ではない:もちろんです!列とインデックスは、論理的にはで、デザインインタフェースで注文する必要があります。ほとんどの人はGUIを使ってテーブルを編集しています。

私はこのような基本的なものは実装されていないと信じられません。それは2011年だよ!

+0

インデックスが20個ありますか?本当にそれらはすべて必要ですか?すべての挿入、削除、および更新は、21の場所に書き込む必要があります。これは無料ではありません。あなたが値を得ていないインデックスは削除する必要があります。 – btilly

+0

他のテーブルを参照するルックアップIDがたくさんある本当に複雑なクエリがあります...そしてWHEREステートメントが多いので、それらのインデックスが必要です... – Dylan

+0

データベースをどのくらい扱っていますか?単に列や索引を並べ替えることはできません。各レコードとそのインデックスは特定の論理的順序でページに書き込まれます。彼らは各エントリの列ヘッダー情報を書きません。 10ギガテーブルにあるテーブルの列を並べ替えるようにしてください。法人や大規模な小売店舗を扱う他のビジネスではそれほど大きくない場合は...視覚的に「魅力的」になるように自分のビジネスをシャットダウンしてください。 – DRapp

答えて

1

インデックスのリストの順序を変更することはできません。 MySQL内部で問題はないかもしれませんが、注文を変更したい場合は、必要に応じて削除して再作成するしかありません。

@btillyが指摘しているように、非常に多くのインデックスを持つことは最良のアイデアではないかもしれません。私はあなたが持っているデータ、またはインデックスアクセスを必要とするデータアクセスパターンはわかりませんが、それは大変です。 OTOH、ちょうど正しいかもしれません。 DBへのアクセス権を持ち、それをプロファイルした人だけが知っているでしょう。