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

MySQLでクラッシュしたテーブルをチェックする方法

MySQLにおいて、テーブルが「クラッシュ(破損)」している状態とは、そのテーブルのストレージエンジン情報がNULLまたは空になっている状態を指します。データベース内のどのテーブルがクラッシュしているのかを確認したい場合は、SHOW TABLE STATUS コマンドを使用します。

クラッシュしたテーブルを確認する基本構文

以下の構文を使うことで、指定したデータベース内のすべてのテーブルの状態を一覧表示できます。

SHOW TABLE STATUS FROM yourDatabaseName;

実行例:test3データベースの場合

ここでは、複数のテーブルを持つ「test3」というデータベースに対して、実際にこの構文を実行してみましょう。

mysql> show table status from test3;

実行すると、次のような出力結果が得られます。

+------------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+
| Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
+------------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+
| bestdateformatdemo           | InnoDB | 10      | Dynamic    | 4    | 4096           | 16384       | 0               | 0            | 0         | 5              | 2019-02-22 22:49:43 | NULL        | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
| countdemo                    | InnoDB | 10      | Dynamic    | 4    | 4096           | 16384       | 0               | 0            | 0         | 4              | 2019-02-26 15:21:12 | NULL        | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
| deletedemo                   | InnoDB | 10      | Dynamic    | 6    | 2730           | 16384       | 0               | 0            | 0         | NULL           | 2019-02-13 19:20:04 | NULL        | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
| differentdatetime            | InnoDB | 10      | Dynamic    | 4    | 4096           | 16384       | 0               | 0            | 0         | 5              | 2019-02-14 10:26:28 | NULL        | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
| expandedoutputdemo           | InnoDB | 10      | Dynamic    | 4    | 4096           | 16384       | 0               | 0            | 0         | 5              | 2019-02-22 22:43:59 | NULL        | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
| fieldlessthan5chars          | InnoDB | 10      | Dynamic    | 8    | 2048           | 16384       | 0               | 0            | 0         | 8              | 2019-02-13 19:03:05 | NULL        | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
| lastrecordbeforelastone      | InnoDB | 10      | Dynamic    | 8    | 2048           | 16384       | 0               | 0            | 0         | 10             | 2019-02-14 17:31:59 | NULL        | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
| mostrecentdatedemo           | InnoDB | 10      | Dynamic    | 6    | 2730           | 16384       | 0               | 0            | 0         | 6              | 2019-02-14 17:15:53 | NULL        | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
| nullcasedemo                 | InnoDB | 10      | Dynamic    | 6    | 2730           | 16384       | 0               | 0            | 0         | NULL           | 2019-02-14 17:55:39 | NULL        | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
| order                        | InnoDB | 10      | Dynamic    | 8    | 2048           | 16384       | 0               | 0            | 0         | NULL           | 2019-02-14 14:23:38 | NULL        | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
| orderbydatethentimedemo      | InnoDB | 10      | Dynamic    | 4    | 4096           | 16384       | 0               | 0            | 0         | 5              | 2019-02-14 18:05:36 | NULL        | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
| posts                        | InnoDB | 10      | Dynamic    | 0    | 0              | 16384       | 0               | 32768        | 0         | NULL           | 2019-02-13 18:19:06 | NULL        | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
| productdemo                  | InnoDB | 10      | Dynamic    | 4    | 4096           | 16384       | 0               | 0            | 0         | NULL           | 2019-02-13 20:06:36 | NULL        | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
| radiansdemo                  | InnoDB | 10      | Dynamic    | 2    | 8192           | 16384       | 0               | 0            | 0         | 3              | 2019-02-14 14:33:24 | NULL        | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
| selecttextafterlastslashdemo | InnoDB | 10      | Dynamic    | 4    | 4096           | 16384       | 0               | 0            | 0         | 5              | 2019-02-22 23:07:32 | NULL        | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
| siglequotesdemo              | InnoDB | 10      | Dynamic    | 0    | 0              | 16384       | 0               | 0            | 0         | NULL           | 2019-02-14 10:41:23 | NULL        | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
| storeddemo                   | InnoDB | 10      | Dynamic    | 6    | 2730           | 16384       | 0               | 0            | 0         | 6              | 2019-02-26 15:53:57 | NULL        | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
| studentinformation           | InnoDB | 10      | Dynamic    | 0    | 0              | 16384       | 0               | 0            | 0         | NULL           | 2019-02-14 17:06:07 | NULL        | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
| updatestringdemo             | InnoDB | 10      | Dynamic    | 2    | 8192           | 16384       | 0               | 0            | 0         | 3              | 2019-02-13 18:25:59 | NULL        | NULL       | utf8mb4_0900_ai_ci | NULL     |                |         |
+------------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+-------------+------------+--------------------+----------+----------------+---------+
19 rows in set (0.71 sec)

出力結果の見方

出力結果には、テーブル名(Name)、ストレージエンジン(Engine)、行数(Rows)、作成日時(Create_time)など、各テーブルに関する詳細な情報が表示されます。この中で注目すべきは Engine カラムです。通常は「InnoDB」や「MyISAM」などのエンジン名が表示されますが、ここが NULL または空欄になっているテーブルがあれば、そのテーブルはクラッシュしている可能性があります。

補足:CHECK TABLEコマンドでテーブルの整合性を検証する

特定のテーブルの状態をより詳しく調べたい場合は、CHECK TABLE コマンドも活用できます。

mysql> CHECK TABLE テーブル名;

このコマンドを実行すると、テーブルの整合性が検証され、問題がなければ「OK」、破損が検出されればエラーメッセージが返されます。破損が見つかった場合は、REPAIR TABLE コマンドで修復を試みることができます(MyISAMテーブルの場合)。

定期的にテーブルの状態をチェックすることで、データ損失やサービス障害を未然に防ぐことができます。特にサーバーの異常終了やディスク障害が発生した後は、必ずテーブルの状態を確認することをおすすめします。

  1. MySQLでNULL値を1として表示・更新する方法

    MySQLでは、テーブル内のNULL値を別の値(たとえば「1」)に置き換えて扱いたい場面があります。この記事では、IFNULL関数とUPDATE文を組み合わせて、NULL値を1に変換する具体的な手順をサンプルコード付きで解説します。 1. サンプルテーブルを作成する まず、動作確認用のテーブルを作成します。 mysql> create table DemoTable1963 ( Counter int ); Query OK, 0 rows affected (0.00 sec) 2. レコードを挿入する INSERT文を使って、NULLを含む複数のレコードを

  2. MySQLでテーブルの単一行にNULL値が含まれているか確認する方法

    MySQLでテーブルの行内にNULL値が含まれているかどうかを確認するには、「IS NULL」演算子を使用します。WHERE句と組み合わせることで、特定のカラムがNULLである行を簡単に抽出できます。ここでは、実際にテーブルを作成し、NULL値を含む行を検索する手順を順番に見ていきましょう。 サンプルテーブルの作成 まず、以下のようにテーブルを作成します。 例 mysql> create table demo86 -> ( -> value1 varchar(20) -> , -> value2 varchar(20)