簡體   English   中英

如何索引MySQL中預先存在的數據?

[英]How do I index pre-existing data in MySQL?

我創建了我的進口數據 MySQL的InnoDB表的索引。 該表是在導入表時由MySQL創建的。 我什么也沒做。 它只是使用GUI導入數據。

然后我嘗試添加一個索引:

ALTER TABLE my_table ADD INDEX idx_myindex (some_column);

我總是得到:

查詢正常,0行受影響(0.22秒)記錄:0重復:0警告:0

我讀了這個問題:

MySql添加索引:0受影響的行

如何使我的表中已有數據來索引實際影響該行的列? 我正在使用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 ,它在添加二級索引后會增加。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM