參考https://blog.csdn.net/pengshuai007/article/details/86021689中思路解決自增id重排
方式一
alter table `table_name` AUTO_INCREMENT=0;
百萬級數據會執行很長時間,並導致鎖表(在百萬級數據表上添加索引也是一樣)
方式二
- 導出原表數據(select * from tab into outfile '/tmp/tab.txt';)
- 創建新表與原表結構保持一致,在該表上執行alter語句添加索引( CREATE TABLE new_tab LIKE old_tab;);
- 將表數據導入創建的新表(load data infile '/tmp/tab.txt' into table tab;);
- 修改新建的表名為原表名。
具體步驟
配置數據庫參數
- show variables like '%secure%';查看 secure-file-priv 當前的值是什么;
- secure-file-priv為null表示禁止導出數據;
- 在my.ini配置文件中修改secure-file-priv參數;
- secure-file-priv= ,設置為空表示不做限制,修改完成重啟數據庫服務。