数据量大的表,直接建索引会耗费非常多的时间,最好不要在高峰期执行。
非高峰期在大表建索引,也有可能无法在当天跑完。
可以先新建一张相同表结果的表,表里面没有数据,创建索引非常快,再把旧的大表数据复制到新表。
(1) 新建相同表结构的表:
create table tableB like tableA;
(2) 在新表创建索引:
create index idx_tableA_columnA on tableB(columnA);
(3) 从旧表导出插入数据的sql语句,再插入到新表中。
如果自己能直接连数据库, 导出插入数据的sql,就自己导出。
如果自己连不上数据库,就找DBA、项目负责人帮忙导sql。
insert into tableB values ...
(4) 删除旧表, 删除之前最好先查询一下,别删除表了。
select * from tableA; drop table tableA;
(5) 新的大表重命名:
rename table tableB to tableA
https://cloud.tencent.com/developer/article/1683999?ivk_sa=1024320u