我也在导入数据的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,在添加二级索引后增加.