my.cnf:
[client]#password = your_passwordport = 3306socket = /tmp/mysql.sock[mysqld]port = 3306socket = /tmp/mysql.sockuser = mysqldatadir = /var/db/mysqlbasedir = /usr/localtmpdir = /var/db/tmpmax_connect_errors = 10innodb_file_format=Barracudainnodb_file_per_table
mysql> show create table Files \G
*************************** 1. row *************************** Table: FilesCreate Table: CREATE TABLE Files
( ID
int(10) unsigned NOT NULL AUTO_INCREMENT, MD5Hash
char(32) NOT NULL DEFAULT ‘’, SHA256Hash
char(64) NOT NULL DEFAULT ‘’, FileSize
int(11) NOT NULL DEFAULT ‘0’, Ext
char(4) NOT NULL DEFAULT ‘’, PRIMARY KEY (ID
), KEY File_k_2
(MD5Hash
(4),SHA256Hash
(4),FileSize
)) ENGINE=InnoDB AUTO_INCREMENT=22728476 DEFAULT CHARSET=utf81 row in set (0.00 sec)
mysql> create table Files2 like Files;
Query OK, 0 rows affected (0.02 sec)
mysql> insert into Files2 select * from Files limit 375000;
Query OK, 375000 rows affected (15.75 sec)Records: 375000 Duplicates: 0 Warnings: 0
mysql> check table Files2;
±------------±------±---------±---------+| Table | Op | Msg_type | Msg_text |±------------±------±---------±---------+| test.Files2 | check | status | OK |±------------±------±---------±---------+1 row in set (1.23 sec)
recreating index:
mysql> alter table Files2 drop KEY File_k_2
;
Query OK, 0 rows affected (0.02 sec)Records: 0 Duplicates: 0 Warnings: 0
mysql> alter table Files2 add KEY File_k_2
(MD5Hash
(4),SHA256Hash
(4),FileSize
);
Query OK, 0 rows affected (1.23 sec)Records: 0 Duplicates: 0 Warnings: 0
mysql> check table Files2;
±------------±------±---------±---------+| Table | Op | Msg_type | Msg_text |±------------±------±---------±---------+| test.Files2 | check | error | Corrupt |±------------±------±---------±---------+1 row in set (0.66 sec)
message in .err:
Error: index File_k_2
of table test
.Files2
contains 20164 entries, should be 375000
Is it bug or I missed something ?
I tried Percona-Server 5.1.45-rel10.2 and MySQL 5.1.47 with built-in InnoDB plugin.