0

4つの異なる並べ替えオプションがあるフィールドがいくつかあります。また、場合によっては、フィールドはこれらの4つのオプションと2つの日付およびユーザーIDによってソートまたはフィルター処理されます。列が次のとおりであると仮定しましょう。

カラム:id、info1、info2、option1、option2、option3、option4、date1、date2、userid

だから私の質問はこれです:

テーブルに7つの異なるインデックス(option1、option2、option3、option4、date1、date2、userid)があっても大丈夫ですか?大規模なデータベースのデータベースからの読み取りおよびデータベースへの書き込みのパフォーマンスに影響はありますか?

はいの場合、解決策として何を提案しますか?

4

3 に答える 3

0

テーブルが INSERTed または UPDATED の場合、インデックスを更新する必要があります。したがって、インデックスが多いほど、これらの操作は遅くなります。

MySQL は通常、クエリごとにテーブルごとに 1 つのインデックスのみを使用します。4 つの異なる並べ替えオプションがある場合、通常、各並べ替えオプションをカバーするインデックスを用意することは理にかなっています。

IIRC、(a、b) と (a、b、c) のインデックスは必要ありません。(a、b、c) は両方をカバーするからです。

于 2012-09-10T22:16:52.353 に答える
0

を実行するかCREATE、インデックスを更新する必要があるときはいつでも。したがって、ステートメントの集中度に基づいてインデックスを制限する必要があります。また、インデックスがどのように機能するかについての基本的な理解も必要です。たとえば、複合インデックスがあり、 のみを選択するクエリを実行する場合、それは役に立ちません。インデックスの代わりにを作成することも検討してください。UPDATEDELETESELECT(c1, c2)c2VIEW

于 2012-09-10T22:20:21.870 に答える
0

「インデックスとその使用」の概念はトレードオフです。検索速度を向上させることができますが、別の場所でコストを支払う必要があります。UPDATE、DELETE、および INSERT コマンドごとにインデックスを更新する必要があるため、多くのインデックスによって DML コマンドの実行時間が大幅に長くなります。彼らは検索であなたにサービスを提供したいと考えており、代わりに代償を払わなければなりません. インデックスが多いほど、検索速度が速くなり、UPDATE と INSERT の時間が長くなります。それらは非常に賢明に使用され、調整されるべきです。

この費用対効果は、正規化でも確認できます。正規化、より優れた分析力、および広く普及したデータを取得し、それらを収集して参加するために料金を支払う必要があります.

于 2012-09-10T22:20:24.943 に答える