1. インデックス不足または無効なインデックスによるクエリの遅延 数千万件のデータを含むテーブルで、インデックスのない列をクエリ条件として使用すると、ほとんどの場合、クエリに非常に時間がかかります。このクエリは間違いなく遅い SQL クエリです。したがって、大量のデータを含むクエリの場合、クエリを最適化するために適切なインデックスを作成する必要があります。 インデックスは頻繁に作成されますが、特定のシナリオでは失敗する可能性があるため、インデックスの失敗もクエリが遅くなる主な原因の 1 つとなります。 2. ロック待機 一般的に使用されるストレージ エンジンには、InnoDB と MyISAM があります。前者は行ロックとテーブル ロックをサポートしますが、後者はテーブル ロックのみをサポートします。 データベース操作がテーブル ロックに基づいて実装されている場合、注文テーブルを更新するときにロックする必要がある場合、他の多数のデータベース操作 (クエリを含む) が待機状態になり、システムの同時実行パフォーマンスに重大な影響を与えることを想像してください。 現時点では、InnoDB ストレージ エンジンでサポートされている行ロックは、同時実行性の高いシナリオに適しています。ただし、InnoDB ストレージ エンジンを使用する場合は、行ロックがテーブル ロックにアップグレードされる可能性に特別な注意を払う必要があります。バッチ更新操作中、行ロックがテーブル ロックにアップグレードされる可能性があります。 MySQL では、テーブルで大量の行ロックを使用すると、トランザクションの実行効率が低下し、他のトランザクションの待機時間が長くなり、ロックの競合が増えて、パフォーマンスが著しく低下する可能性があると考えています。そのため、MySQL では行ロックをテーブル ロックにアップグレードします。さらに、行ロックはインデックスに基づくロックです。更新操作中に条件付きインデックスが失敗した場合、行ロックはテーブル ロックにアップグレードされます。 したがって、テーブル ロックに基づくデータベース操作では、SQL がブロックされて待機状態になり、実行速度に影響します。更新操作 (挿入\更新\削除) が読み取り操作以上になる場合、MySQL では MyISAM ストレージ エンジンの使用は推奨されません。 ロックのアップグレードに加えて、行ロックはテーブルロックに比べて粒度が細かく、同時実行機能が向上していますが、デッドロックという新しい問題も発生します。したがって、行ロックを使用する場合は、デッドロックを回避するように注意してください。 3. 不適切なSQL文 不適切な SQL ステートメントの使用も、SQL が遅くなる最も一般的な原因の 1 つです。たとえば、<SELECT *>、<SELECT COUNT(*)> SQL ステートメントの使用、大規模なデータ テーブルでの <LIMIT M,N> ページング クエリの使用、およびインデックスのないフィールドの並べ替えに慣れています。 以上が今回ご紹介したノウハウポイントの全てです。123WORDPRESS.COMをどうぞよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: VMware Workstation と vSphere 間で仮想マシンを移行する (画像とテキスト)
>>: JavaScript のフラット配列をツリー構造に変換する例
GitHub アドレス: https://github.com/dmhsq/dmhsq-mysql-...
要約すると: Readonly は入力 (テキスト/パスワード) とテキスト領域に対してのみ有効です...
<br />前の記事:Webデザインチュートリアル(5):Webビジュアルデザイン。 1...
目次序文原因を発見するカスタムフィルタリングルール要約する序文インターネットの急速な発展に伴い、情報...
水平線<hr /> タグを使用して、現在の位置に水平の分割線を描画します。例: XML/...
1. mysqlエクスポートファイル: SELECT `pe2e_user_to_company`....
Zabbix サーバー環境プラットフォームバージョン: ZABBIX バージョン 4.4システム:...
序文Intel のハイパースレッディング テクノロジーにより、1 つの物理コア上で 2 つのスレッド...
現在、クロスプラットフォーム開発技術はもはや新しい話題ではありません。市場にはいくつかのオープンソー...
XHTML タグには、div、ul、li、dl、dt、dd、h1~h6、p、a、addressa、s...
私はプロジェクトを実行するために react を使い始めたばかりで、非常に未熟で完全な初心者です。私...
取引特性1. アトミック性: トランザクションの開始後、すべての操作が完了するか、まったく実行されな...
目次1. データベースを理解する1.1 データベースとデータ構造の関係1.2 なぜデータベースが必要...
序文Nginxの組み込みモジュールは、同時リクエスト数の制限とリクエストのソースの制限をサポートして...
この記事では、検証コードの効果を実現するためのJavaScriptの具体的なコードを参考までに共有し...