目次

1

#查看是否开启show variables like '%slow_query_log%';#开启set global slow_query_log = 1;

ログイン後にコピー
" >

1

#查看是否开启show variables like '%slow_query_log%';#开启set global slow_query_log = 1;

ログイン後にコピー
ホームページ データベース mysql チュートリアル MySQL を使用して SQL に時間のかかる問題を分析する

MySQL を使用して SQL に時間のかかる問題を分析する

Sep 09, 2017 pm 02:03 PM
mysql 分析する 質問


スローログクエリ

MySQLのスローログクエリは、MySQLの応答時間が閾値を超えたステートメントをスローログに記録します。 。 long_query_time のデフォルト時間は 10 です。これは、10 を超えるステートメントを実行することを意味します。

たとえば、SQL が 5 秒以上実行された場合、MySQL は 5 秒以上の SQL を記録し、包括的な分析を行うことができます。

デフォルトでは、MySQL データベースはスロークエリログを有効にしていないため、このパラメータを手動で設定する必要があります。もちろん、チューニングに必要でない場合は、ロギングが遅いとパフォーマンスにある程度の影響が出る可能性があるため、通常はこのパラメータを有効にすることはお勧めできません。

有効かどうか

1

#查看是否开启show variables like '%slow_query_log%';#开启set global slow_query_log = 1;

ログイン後にコピー

set global throw_query_log=1 を使用してスロー クエリ ログを有効にすると、現在のデータベースにのみ有効になり、MySQL が再起動されると無効になります。これを永続的に有効にしたい場合は、構成ファイル my.cnf を変更する必要があります。

低速クエリしきい値時間を設定した後、値の変更が表示されない場合があります。つまり、変更された値を確認するには、再接続するか、新しいセッションを開く必要があることに注意してください。

1

show variables like '%long_query_time%'

ログイン後にコピー
ログイン後にコピー

または、接続を再度開かずに次のコマンドを使用することもできます:

1

show variables like '%long_query_time%'

ログイン後にコピー
ログイン後にコピー

どの SQL がログに記録されるかは、long_query_time によって制御されます。デフォルトでは、long_query_time の値は 10 秒です。時間はlong_query_timeと正確に等しい場合、記録されません。つまり、mysqlではlong_query_time以上ではなく、より大きいと判断されます。

次のステートメントを使用してテストを実行できます

1

show variables like '%long_query_time%';

ログイン後にコピー

long_query_time を 3 秒に設定すると、このステートメントが記録されます。

遅いログの数を表示するMySQL を使用して SQL に時間のかかる問題を分析する

1

SELECT sleep(4)

ログイン後にコピー

ログ分析ツール mysqldumpslow

運用環境で手動でログを分析し、SQL を見つけて分析したい場合、MySql が提供するログ分析は明らかに面倒な作業です。 mysqldumpslow ツール。

例:

1

show global status like '%slow_queries%'

ログイン後にコピー

1

2

3

4

5

#得到返回记录集最多的10个SQL

Mysqldumpslow –s r –t 10 D:\Program Files\mysql\data\DESKTOP-VN2D5OU-slow.log#得到访问次数最多的10个SQL

Mysqldumpslow –s c –t 10 D:\Program Files\mysql\data\DESKTOP-VN2D5OU-slow.log#得到按照时间排序的前10条里面含有左连接的查询

Mysqldumpslow –s t –t 10 –g “left join” D:\Program Files\mysql\data\DESKTOP-VN2D5OU-slow.log#另外建议在使用这些命令时结合|和more使用,否则可能出现爆破情况

Mysqldumpslow –s r –t 10 D:\Program Files\mysql\data\DESKTOP-VN2D5OU-slow.log|more

ログイン後にコピー

SQL 分析には show profile を使用します

show profile コマンドは、現在のセッションでのステートメント実行のリソース消費を分析できます。 SQL に時間のかかるボトルネックを見つけるために使用されます。デフォルトではオフになっており、過去 15 回の実行結果が保存されます。

有効かどうかを確認します (「profiling」などの変数を表示します)

関数を有効にします (set profiling = on;)

有効にすると、その後の SQL の実行を記録できます。次に、show profiles を使用して結果を表示します:

コマンド (show profile cpu, block io for query 3;) を通じて特定の SQL ステートメントの実行をさらに分析します。たとえば、SQL No. 3 の状況を分析します。下に。 MySQL を使用して SQL に時間のかかる問題を分析する

Show profile の背後にあるいくつかのパラメータ: MySQL を使用して SQL に時間のかかる問題を分析する

All: すべてのオーバーヘッド情報を表示
  • Block io: ブロック IO 関連のオーバーヘッドを表示
  • コンテキスト スイッチ: コンテキスト スイッチング関連のオーバーヘッド
  • CPU: CPU関連のオーバーヘッドを表示します
  • Memory: メモリ関連のオーバーヘッドを表示します
  • Source: source_function、source_file、source_lineに関連するオーバーヘッド情報を表示します
  • グローバルクエリログ
(運用環境では決してオンにしないでください) 、実行されたすべての SQL ステートメントを表示)

Set コマンド:

1

2

3

4

5

6

7

8

9

参数含义

s: 表示按照何种方式排序

c:访问次数

l:锁定时间

r:返回记录

t:查询时间

al:平均锁定时间

t:返回前面多少条的数据

g:后面搭配一个正则表达式

ログイン後にコピー

その後、mysql によって実行された SQL ステートメントは mysql.genearl_log テーブルに記録され、次のコマンドで表示できます:

1

set global general_log = 1;#以表的形式输出set global log_output = ‘TABLE’

ログイン後にコピー

構成ファイルで次のように設定します:

1

select * from mysql.general_log;

ログイン後にコピー

以上がMySQL を使用して SQL に時間のかかる問題を分析するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MySQL:世界で最も人気のあるデータベースの紹介 MySQL:世界で最も人気のあるデータベースの紹介 Apr 12, 2025 am 12:18 AM

MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

Apacheのデータベースに接続する方法 Apacheのデータベースに接続する方法 Apr 13, 2025 pm 01:03 PM

Apacheはデータベースに接続するには、次の手順が必要です。データベースドライバーをインストールします。 web.xmlファイルを構成して、接続プールを作成します。 JDBCデータソースを作成し、接続設定を指定します。 JDBC APIを使用して、接続の取得、ステートメントの作成、バインディングパラメーター、クエリまたは更新の実行、結果の処理など、Javaコードのデータベースにアクセスします。

MySQLの場所:データベースとプログラミング MySQLの場所:データベースとプログラミング Apr 13, 2025 am 12:18 AM

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

なぜMySQLを使用するのですか?利点と利点 なぜMySQLを使用するのですか?利点と利点 Apr 12, 2025 am 12:17 AM

MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

MySQLの役割:Webアプリケーションのデータベース MySQLの役割:Webアプリケーションのデータベース Apr 17, 2025 am 12:23 AM

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

DockerによるMySQLを開始する方法 DockerによるMySQLを開始する方法 Apr 15, 2025 pm 12:09 PM

DockerでMySQLを起動するプロセスは、次の手順で構成されています。MySQLイメージをプルしてコンテナを作成および起動し、ルートユーザーパスワードを設定し、ポート検証接続をマップしてデータベースを作成し、ユーザーはすべての権限をデータベースに付与します。

Laravelは紹介例 Laravelは紹介例 Apr 18, 2025 pm 12:45 PM

Laravelは、Webアプリケーションを簡単に構築するためのPHPフレームワークです。次のような強力な機能を提供します。インストール:Laravel CLIを作曲家にグローバルにインストールし、プロジェクトディレクトリにアプリケーションを作成します。ルーティング:ルート/web.phpのURLとハンドラーの関係を定義します。ビュー:リソース/ビューでビューを作成して、アプリケーションのインターフェイスをレンダリングします。データベース統合:MySQLなどのデータベースとのすぐ外側の統合を提供し、移行を使用してテーブルを作成および変更します。モデルとコントローラー:モデルはデータベースエンティティを表し、コントローラーはHTTP要求を処理します。

データベース接続の解決問題:Minii/DBライブラリを使用する実用的なケース データベース接続の解決問題:Minii/DBライブラリを使用する実用的なケース Apr 18, 2025 am 07:09 AM

小さなアプリケーションを開発する際には、軽量データベース操作ライブラリをすばやく統合する必要性という厄介な問題に遭遇しました。複数のライブラリを試した後、私はそれらがあまりにも多くの機能を持っているか、あまり互換性がないかのどちらかであることがわかりました。最終的に、私は問題を完全に解決したYii2に基づいた単純化されたバージョンであるMinii/DBを見つけました。

See all articles