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

ANALYZE TABLEステートメントはMySQLテーブルの保守にどのように役立ちますか?


MySQLクエリオプティマイザは、クエリに対して最適な質問の実行を設定するMySQLサーバーの重要な要素です。特定のクエリの場合、クエリオプティマイザは、格納されているキーの分布やその他の要素を使用して、結合を実行するときにテーブルを結合する順序と、特定のテーブルに使用するインデックスを決定します。

ただし、たとえば、挿入、削除、更新など、テーブルで多くのデータ変更を行った後など、キーの配布が不正確になることがあります。キーの配布が正しくない場合、質問オプティマイザーは、深刻なパフォーマンスの問題を引き起こす厄介なクエリ実行アレンジを選択する可能性があります。

ANALYZE TABLEステートメントは、上記の問題を解決できます。 ANALYZETABLEステートメントを次のように実行する必要があります-

ANALYZE TABLE table_name

ここで、table_nameはテーブルの名前です。

テーブルStudent_infoに対して次のようにこのステートメントを実行しています-

mysql> Analyze table student_info\G;
*************************** 1. row ***************************
   Table: query.student_info
      Op: analyze
Msg_type: status
Msg_text: OK

1 row in set (0.22 sec)

  1. 今週のMySQLにクエリを実行するにはどうすればよいですか?

    今週のMySQLにクエリを実行するには、YEARWEEK()関数を使用できます。 構文は次のとおりです SELECT *FROM yourTableName WHERE YEARWEEK(yourDateColumnName) = YEARWEEK(NOW()); 上記の構文を理解するために、テーブルを作成しましょう。テーブルを作成するためのクエリは次のとおりです mysql> create table currentWeekDemo -> ( -> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY, ->

  2. MySQLでテーブルの構造を複製するにはどうすればよいですか?

    MySQLでクローンを作成するには、LIKE句を使用します。まずテーブルを作成しましょう- mysql> create table DemoTable1 -> ( -> StudentId int, -> StudentName varchar(20) -> ); Query OK, 0 rows affected (0.55 sec) 挿入コマンド-を使用して、テーブルにいくつかのレコードを挿入します mysql> insert into DemoTable1 values(100,'John'); Query OK, 1 row aff