3

申し訳ありませんが、

このミニテーブルには3つの列がありますが、値を1つまたは他の列でリストします。

1)これらの列のうち2つにインデックスを付けても大丈夫ですか?

2)テーブルごとに1つのインデックスのみを設定する必要がありますか?

3)限界として、たとえば100列のテーブルがあり、そのうち50列にインデックスがある場合、これで問題ありませんか?

ありがとう、MEM

4

3 に答える 3

5

使用している限り、1つのテーブルに複数のインデックスがある場合でも、多くのインデックスを作成することは問題ありません。

クエリでEXPLAINを実行し、使用されているインデックスを確認します。クエリで使用されていないインデックスがある場合、それらは何のメリットももたらさず、テーブルへの変更を遅くしているだけです。これらの未使用のインデックスは削除する必要があります。

まだ行っていない場合は、複数列のインデックスを検討することもできます。

于 2010-09-13T11:50:44.697 に答える
1

テーブルごとに複数のインデックスを設定しても問題はありません。また、テーブルごとに1つのインデックスを作成することは実際にはガイドラインではありません。

インデックスが多すぎると非効率的です。

  • 追加のストレージが必要です
  • MySQLは、特定のクエリに使用するインデックスを決定する必要があります

編集:PabloとMarkによると、効果的なインデックスを作成するには、データがどのようにアクセスされているかを理解する必要があります。次に、インデックスを調整および削減できます。

于 2010-09-13T11:52:16.047 に答える
1

あなたの質問に素早く答えるために、私は思います:

  1. はい、インデックス付きの列が2つ以上ある場合は問題ありません
  2. 必ずしも。テーブルごとに複数のインデックスを持つことができます。
  3. それは大丈夫かもしれません、それは大丈夫ではないかもしれません。場合によります。インデックスの場合、(DISKで)スペースを取り、データを変更する操作(INSERT / UPDATE / DELETE)が遅くなります。これは、インデックスのすべてに、TABLEINDEXの更新が含まれるためです。

インデックスの作成は、クエリによって駆動される必要があります。システムで実行するクエリを確認し、それに応じてインデックスを作成します。

于 2010-09-13T11:52:34.843 に答える