MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

コンソールに出力せずにMySQLクエリにかかる時間を確認するにはどうすればよいですか?


これを確認するには、現在のセッション中に実行されたステートメントのリソース使用量を示すプロファイリング情報が必要です。プロファイリング情報は、 SHOW PROFILEで取得できます およびプロファイルを表示 ステートメント。

これらのステートメントを実行する前に、プロファイリングセッション変数を次のように1に設定する必要があります-

mysql> set profiling = 1;
Query OK, 0 rows affected (0.00 sec)

ここで、 SHOW PROFILESを実行する場合 ステートメントを実行すると、サーバーに送信された最新のステートメントのリストが、期間とクエリIDとともに表示されます。

mysql> show profiles;
+----------+------------+--------------------------------------+
| Query_ID | Duration   | Query                                |
+----------+------------+--------------------------------------+
| 1        | 0.01602200 | drop table if exists t1              |
| 2        | 0.57223450 | create table t1(id int)              |
| 3        | 0.00015425 | show profile for query1              |
| 4        | 0.22945050 | create table e1(id int)              |
| 5        | 0.09977025 | insert into e1(id) values(3),(4),(5) |
+----------+------------+--------------------------------------+
5 rows in set (0.00 sec)

ここで、特定のクエリの期間を確認したい場合は、 SHOW PROFILEを実行できます。 query query_noの場合 声明。たとえば、query_id =5のステートメントを実行すると、次のように出力されます-

mysql> show profile for query 5;
+------------------------------+--------------+
| Status                       | Duration     |
+------------------------------+--------------+
| starting                     | 0.000138     |
| checking permissions         | 0.000024     |
| Opening tables               | 0.000057     |
| System lock                  | 0.035186     |
| init                         | 0.000035     |
| update                       | 0.021484     |
| Waiting for query cache lock | 0.000021     |
| update                       | 0.000005     |
| end                          | 0.000024     |
| query end                    | 0.042700     |
| closing tables               | 0.000017     |
| freeing items                | 0.000076     |
| logging slow query           | 0.000003     |
| cleaning up                  | 0.000002     |
+------------------------------+--------------+
14 rows in set (0.00 sec)

  1. MySQLで特定の行または列が使用しているディスク容量を照会できますか?

    はい、以下の構文を使用します- select * from information_schema.tables where table_name=yourTableName; まずテーブルを作成しましょう- mysql> create table DemoTable1600    -> (    -> StudentId int,    -> StudentFirstName varchar(20)    -> ); Query OK, 0 rows affected (0.51 s

  2. MySQLでselectクエリによって取得された結果をどのように並べ替えることができますか?

    テーブルから特定のデータまたは行を選択するのが一般的です。行は、テーブルに表示される順序で返されます。テーブルから選択した行を、ある列に対して昇順または降順で返す必要がある場合があります。 「ORDERBY」ステートメントは、ある列に関して結果を並べ替えるために使用されます。次の例は、より明確になります。 「name」フィールドを含むさまざまなフィールドで構成されるテーブルがあるとします。テーブルからすべての行を選択しますが、行は名前のアルファベット順に並べる必要があります。ここで「ORDERBY」ステートメントが機能します。このシナリオでは、結果を「名前」フィールドの昇順で並べ替える必要