如何在MySQL中建立索引?

我也在导入数据的MySQL innodb表上创建了一个索引.该表是在导入表时由MySQL创建的.我什么也没做.它只是通过GUI导入了数据.

然后我尝试添加一个索引:

ALTER TABLE my_table ADD INDEX idx_myindex (some_column);

我总是得到:

查询正常,受影响的0行(0.22秒)
记录:0重复项:0警告:0

我读了这个问题:

MySql Add Index : 0 Rows Affected

如何使已包含数据的表索引实际影响该行的列?我正在使用innoDB.

我是否需要导出,删除所有数据,重新导入(进行索引更新)?

解决方法:

创建索引时,MySQL 5.1和更早版本报告了N行受影响,并且N始终是表中的行数.

从MySQL 5.5.5开始,他们停止报告该数字,并确定所有DDL语句的受影响行始终为零.查看http://bugs.mysql.com/bug.php?id=21818

确保创建索引会自动使用值填充它.您可以通过在创建索引之前和之后运行SHOW TABLE STATUS LIKE’mytable’来验证这一点.显示的字段之一是index_length,在添加二级索引后增加.

上一篇:是否可以通过A减B索引mysql表以进行排序?


下一篇:MySQL,SELECT * FROM与索引列