なお、インデックスデータベースを使用する場合


        ( - インデックスが仕事をしない「%テキスト」など)キーワードファジークエリように使用、インデックスの前に置か%が仕事ではなく、最初の位置でのみ「%」、インデックステイク効果がない1、

       組み合わせ指数、最初のフィールドにこれらの分野で使用されるだけで、クエリ、インデックステイク効果で使用される2、

       二つの条件の前後には、ORおよび列が、インデックステイク効果をインデックス化しているときにのみ、キーワード、クエリのクエリステートメントをORキーワードクエリを使用してOR 3は、そうでない場合は、インデックスは有効になりません。

       4、それ以外の場合はエンジンがインデックスと全表スキャンを使用してあきらめます。、句!=または<>演算子での使用を避けるために

       5、クエリの最適化は、全表スキャンを回避しようとしてください、あなたは最初の関与の列で、オーダーのインデックスの設立を検討すべきです。

       図6は、エンジンがインデックスと全表スキャンを使用してあきらめてしまいますwhere句の表現で動作させるフィールド、のために避けるべきです。以下のような:

	 	select id from t where num/2=100 
    应改为: 
    	select id from t where num=100*2 

       7、where句内のフィールドの操作の機能を回避するために、エンジンがインデックスと全表スキャンを使用してあきらめてしまいます。

       WHERE句内の8ない関数、算術演算、またはその他の表現は、「=」左、またはシステムが適切に索引付け動作しない可能性があります。

       9、すべてのインデックスが有効なクエリ、SQLクエリの最適化は、テーブルなどの重複データのインデックスリストが多数、インデックスを利用しないSQLクエリは、フィールドがある場合、テーブル内のデータに基づいて行われているわけではない
  セックスをし、男性クエリの効率にも影響なしのセックス指数に設立された場合でも、女性のほぼ半分。
  
       10は、インデックスが不可能である、対応するインデックスは確かに選択の効率を向上させることができ、また、挿入および更新の効率を低下させ
  、挿入または更新は、インデックスを再構築する時期が可能で、インデックスは慎重にどのようにビルドに検討する必要があるとして、場合であってもよいように。インデックス番号テーブルは、最高の半年以上ではありません
  あまりにも多くのあなたは、必要に応じてインデックス列を構築するために使用頻度の低いのいくつかを検討する必要がある場合。
  
       11、数値フィールドのメイク使用、場合のみクエリとの接続のパフォーマンスが低下しますし、ストレージのオーバーヘッドが増加します文字、のために設計するのではないできるだけ数値情報フィールドを持ちます。
  一度だけ文字列内の各文字を比較することにより、クエリとの接続1を処理し、数値の比較のために、エンジンが十分にあるためです。
  
       12、インデックスが使用されている場合句はそう、カラムによって、次いで順序インデックスを使用しない唯一のインデックスを使用してMySQLクエリ。
   だから、ソートの例の要件を満たすことができ、操作をソートするデフォルトのデータベースを使用していない、これらの列は、最高の複合インデックスを構築する必要がある場合は、複数の列が含ま並べ替えしないようにしてください。
  
       13、インデックスによって、問題は(主キーインデックスに加えて)動作しないため。

              1、唯一の選択クエリのインデックスフィールド場合、インデックスフィールドによって順序は、インデックス、または他のテーブル全体の配置を使用します。

               2、例えば、どこVTYPEのASCによってVTYPE = 1つの順序条件がある場合。このインデックス順が使用されます!



公開された51元の記事 ウォン称賛11 ビュー6097

おすすめ

転載: blog.csdn.net/weixin_42140261/article/details/95057021