最適化する理由: 実際のプロジェクトが開始され、データベースが一定期間稼働した後、初期のデータベース設定は実際のデータベースのパフォーマンスと若干異なることがあります。この時点で、最適化の調整を行う必要があります。 データベースの最適化のトピックは比較的広範囲にわたり、次の 4 つのカテゴリに分類できます。
次に、データベース SQL 最適化ソリューションをいくつか示します。 (01)最も効率的なテーブル名の順序を選択する(筆記試験でよく聞かれる) データベース パーサーは、FROM 句のテーブル名を右から左に処理します。FROM 句の最後のテーブルが最初に処理されます。FROM 句に複数のテーブルが含まれている場合は、レコード数が最も少ないテーブルを選択して最後に配置する必要があります。クエリに 3 つ以上のテーブルがある場合は、他のテーブルによって参照されるテーブルを選択して最後に配置する必要があります。 例: 従業員番号、名前、給与、給与等級、部署名を照会する emp.empno、emp.ename、emp.sal、salgrade.grade、dept.dname を選択 salgrade、dept、emp から ここで、(emp.deptno = dept.deptno) かつ (emp.sal は salgrade.losal と salgrade.hisal の間) 1) 3 つのテーブルがまったく関連していない場合は、レコード数と列名が最も少ないテーブルを最後に記述します。 2) 3 つの表が関連している場合は、参照が最も多い表を最後に配置します。 (02) WHERE句の結合順序(筆記試験でよく出題される) データベースは、WHERE 句を右から左に解析します。この原則に従って、テーブル間の接続は他の WHERE 条件の左側に記述する必要があり、最大数のレコードをフィルターできる条件は WHERE 句の右側に記述する必要があります。 例: 従業員番号、名前、給与、部署名を照会する emp.empno、emp.ename、emp.sal、dept.dname を選択 emp、deptから ここで (emp.deptno = dept.deptno) かつ (emp.sal > 1500) (03) SELECT句でアスタリスク(*)を使用しない 解析プロセス中に、データベースは * をすべての列名に順番に変換します。この作業はデータ ディクショナリをクエリすることによって行われるため、時間がかかります。 emp から empno、ename を選択します。 (04) DELETEの代わりにTRUNCATEを使用する (05)できるだけCOMMITを使う COMMITはロールバックポイントを解放するため (06)HAVING句をWHERE句に置き換える WHEREが最初に実行され、HAVINGが後で実行されます (07)SQLの効率を上げるために内部関数をより頻繁に使用する (08) テーブルエイリアスの使用
(09) 列エイリアスの使用
つまり、データベースの最適化は1日で終わるものではなく、長期にわたる実践の中で繰り返しテストとまとめを行う必要があります。学生の皆さんには、今後、それをしっかりと理解してもらいたいと思います。 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。 以下もご興味があるかもしれません:
|
<<: Vueはカスタム命令を使用してページの下部に透かしを追加します
>>: VSCode+CMake+Clang+GCC 環境構築チュートリアル (Win10 の場合)
序文Deepin のユーザー インターフェイスは、使用時に非常に見栄えがします。インターフェイス効果...
目次序文指導の基本フック機能フック関数のパラメータ文章使い方とアイデア成し遂げる汎用性を高める要約す...
ここでは Ubuntu 16.04 システムを使用しています。 dockerを使用したインストールh...
目次Vue3 カプセル化メッセージプロンプトインスタンス関数スタイルレイアウトカプセル化メッセージ....
TS で時間を過ごした場所をいくつか記録します。 (まず、文句を言わせてください。stackover...
この記事では、Mysql WorkBenchのインストールと設定のグラフィックチュートリアルを参考ま...
前回の記事「MySQL テーブル構造の変更、メタデータ ロックを知っておく必要があります」では、MD...
1. WEBでサポートされている画像形式: GIF: 256色を保存でき、透明色をサポートし、アニメ...
1. フロート: 主な目的は、テキストを画像の周囲に折り返す効果を実現することです。また、複数列レイ...
目次1. はじめに2. コードの実装2.1 目的分析2.2 実装プロセス2.2.1 エントリーコード...
目次フロントエンド上記のアイデアに従って、ページめくり機能を設計して記述します。バックエンド(Jav...
最近、MySQL オンラインでいくつかのデータ異常が発生しましたが、すべて早朝に発生しました。ビジネ...
目次MySql8.0 トランザクション分離レベルエラーの表示質問コマンドは次のように変更されますMy...
以下の手順に従ってください1. request.jsコンテンツ: http リクエスト インターセプ...
では、早速レンダリングを見てみましょう。 コア コードはtransition: cubic-bezi...