アクセスSQL文の最適化のMySQLのデータベースのパフォーマンスの最適化

次の最適化アプローチは避けられないトレードオフの状況を総合的に勘案は、実際のシナリオに基づいているように見える必要が

参加最小限に抑えるために1、:
MySQLは単純であるという利点を持っている、理由の一方で、参加複雑なマルチテーブルのためのMySQLを最適化し、高効率のオプティマイザは限られているので、パフォーマンスが理想的ではありません。

2、少し並べ替えしようとする
ソート操作は、MySQLのためのより多くのCPUリソースを消費し、など、さまざまな方法を注文するの削減、:
1)ソートするインデックスを使用して、
2)発注に関与したレコードの数減らす
3)DISTINCTと、UNIONは、ORDERBY SQL文のSQLエンジンが実行を開始します、リソースを消費する(SORT)機能をソートする。DISTINCTは、ソート操作を必要とし、他の人が注文し、少なくとも2回実行する必要がありながら、

極力、4または
複数あるwhere句MySQL固有のSQLおよびストレージに接続された条件「または」MySQLのオプティマイザは、その実行計画の最適化に良い解決策はない場合、共存は、多くの場合、労働組合を使用して、比較的低いパフォーマンスで、その結果、アーキテクチャのアプローチを重ね交換する「または」より良い結果を得るでしょう全部または組合(必要なとき)の方法。

5、すべての組合の代わりに労働組合を使用しようとする
すべての主要な違いは、前者は結果の二組を必要とすることである連合と労働組合の、その後ソート伴いますフィルタリング動作の一意性、CPU操作の数を増やし、資源の消費を増やします遅延。だから我々は、結果セットを確認することができたときに複製することができないか、代わりに労働組合のすべての組合を使用しようとすると、結果セットの繰り返しを気にしないでください。

6、できるだけ早期フィルタとして
例えば、我々は複数のテーブル間でデータのクエリをページングされたとき、私たちはとてもできるだけ、追加のテーブルを結合して、結果セットを分割し、その後は良いページをテーブルの上に優れたデータとページ分割をフィルタリングし、することができるだろう不要なIO操作を減らし、IO操作は、時間の消費を節約できます。

7、変換の種類を避けるために
節が入ってくるパラメータ型型変換が発生するときType]フィールドに表示され、一貫性のない場合には、CPUのコンピューティング上げるとき

8を、GROUP BY DISTINCTを使用していない
、非常にゆっくりと操作することにより、グループ以下のような:
SELECTはWHERE単価> 10 GROUPBYの受注から詳細を受注、変更することができます。詳細からSELECT DISTINCTは、WHERE単価> 10受注コード

9、SELECT INTOステートメントを使用しないようにしよう
SELECT INOT文は、テーブルへのアクセスから、他のユーザーを防止し、テーブルロックの原因となる

10を非常に同時SQLは、低周波よりもはるかに多くのダメージを与え、むしろ低周波「大きな」SQLを実行するよりも、非常に同時SQLの最適化を優先し、同時実行性の高いSQL問題がある場合、システムクラッシュを指示することが可能です。いくつかは、IOを大量に消費するために、応答は、低周波数応答に、非常に遅いSQLで少し遅くなり、システム全体、バッファ機会までです。

おすすめ

転載: www.cnblogs.com/heimaguangzhou/p/11717734.html