Bug #13132 | Index cardinality not updated | ||
---|---|---|---|
Submitted: | 13 Sep 2005 9:31 | Modified: | 13 Sep 2005 12:34 |
Reporter: | Lars Teuber | Email Updates: | |
Status: | Not a Bug | Impact on me: | |
Category: | MySQL Server | Severity: | S3 (Non-critical) |
Version: | 4.0.20, 4.1.14, 4.1.7 | OS: | Windows (Windows/Linux) |
Assigned to: | CPU Architecture: | Any |
[13 Sep 2005 9:31]
Lars Teuber
[13 Sep 2005 11:05]
Valeriy Kravchuk
Sorry, but I was not able to repeat the behaviour you described on 4.1.14-nt: mysql> select version(); +-----------+ | version() | +-----------+ | 4.1.14-nt | +-----------+ 1 row in set (0.18 sec) mysql> use test Database changed mysql> CREATE TABLE `test` ( -> `id` INT UNSIGNED NOT NULL AUTO_INCREMENT , -> `test` INT UNSIGNED NOT NULL , -> PRIMARY KEY ( `id` ) , -> INDEX ( `test` ) -> ); Query OK, 0 rows affected (0.84 sec) mysql> mysql> INSERT INTO `test` ( `id` , `test` ) -> VALUES ( -> '', '1' -> ); Query OK, 1 row affected, 1 warning (0.17 sec) mysql> mysql> SHOW INDEX FROM test; +-------+------------+----------+--------------+-------------+-----------+------ -------+----------+--------+------+------------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | +-------+------------+----------+--------------+-------------+-----------+------ -------+----------+--------+------+------------+---------+ | test | 0 | PRIMARY | 1 | id | A | 1 | NULL | NULL | | BTREE | | | test | 1 | test | 1 | test | A | 1 | NULL | NULL | | BTREE | | +-------+------------+----------+--------------+-------------+-----------+------ -------+----------+--------+------+------------+---------+ 2 rows in set (0.14 sec) Cardinality is 1, as expected. What storage engine is used, by the way? In my case it was InnoDB. When I tried with similar MyISAM table, the results were slightly different: mysql> SHOW INDEX FROM test2; +-------+------------+----------+--------------+-------------+-----------+------ -------+----------+--------+------+------------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardi nality | Sub_part | Packed | Null | Index_type | Comment | +-------+------------+----------+--------------+-------------+-----------+------ -------+----------+--------+------+------------+---------+ | test2 | 0 | PRIMARY | 1 | id | A | 1 | NULL | NULL | | BTREE | | | test2 | 1 | test | 1 | test | A | NULL | NULL | NULL | | BTREE | | +-------+------------+----------+--------------+-------------+-----------+------ -------+----------+--------+------+------------+---------+ So, only primary key's cardinality is updated. Is this what you had seen in your test? Please, send the results of "SHOW CREATE TABLE test" to be sure.
[13 Sep 2005 11:47]
Lars Teuber
Hello Valeriy, sorry that I did not mention the storage engine, it is MyISAM. Only primary key's cardinality is updated, not the cardinality of the other column. Result of "SHOW CREATE TABLE test": CREATE TABLE `test` ( `id` int(10) unsigned NOT NULL auto_increment, `test` int(10) unsigned NOT NULL default '0', PRIMARY KEY (`id`), KEY `test` (`test`) ) TYPE=MyISAM Best regards Lars.
[13 Sep 2005 12:34]
Valeriy Kravchuk
Thank you for taking the time to write to us, but this is not a bug. Please double-check the documentation available at http://www.mysql.com/documentation/ and the instructions on how to report a bug at http://bugs.mysql.com/how-to-report.php Additional info: For MyISAM tables this is a documented behaviour. See the details on Cardinality column in http://dev.mysql.com/doc/mysql/en/show-index.html