dak ブログ

python、rubyなどのプログラミング、MySQL、サーバーの設定などの備忘録。レゴの写真も。

MySQLでテーブルのチェックサムをとる方法

2011-05-25 21:32:53 | mysql
checksum table テーブル名 でテーブルのチェックサムをとることができます。

以下のようなテーブル、データを登録します。

create table test1 (
id int,
name varchar(80)
);

insert into test1 set id = 1, name = 'id1';
insert into test1 set id = 2, name = 'id2';
insert into test1 set id = 3, name = 'id3';
insert into test1 set id = 4, name = 'id4';
insert into test1 set id = 5, name = 'id5';

$ mysql
mysql> select * from test1;
+------+------+
| id | name |
+------+------+
| 1 | id1 |
| 2 | id2 |
| 3 | id3 |
| 4 | id4 |
| 5 | id5 |
+------+------+
5 rows in set (0.00 sec)

mysql> checksum table test1;
+-------------------+------------+
| Table | Checksum |
+-------------------+------------+
| test_nikeda.test1 | 1155597644 |
+-------------------+------------+
1 row in set (0.00 sec)


チェックサムの値は、テーブルに登録するデータの順番に影響されないようです。
以下の順にデータを登録します。

insert into test1 set id = 1, name = 'id1';
insert into test1 set id = 3, name = 'id3';
insert into test1 set id = 5, name = 'id5';
insert into test1 set id = 2, name = 'id2';
insert into test1 set id = 4, name = 'id4';

mysql> select * from test1;
+------+------+
| id | name |
+------+------+
| 1 | id1 |
| 3 | id3 |
| 5 | id5 |
| 2 | id2 |
| 4 | id4 |
+------+------+
5 rows in set (0.00 sec)

mysql> checksum table test1;
+-------------------+------------+
| Table | Checksum |
+-------------------+------------+
| test_nikeda.test1 | 1155597644 |
+-------------------+------------+
1 row in set (0.00 sec)

データの登録順には関係なく、チェックサムの値は一致しています。

この記事についてブログを書く
« grepコマンドの戻り値 | トップ | mysql でテーブルの更新時刻... »

mysql」カテゴリの最新記事