如何在没有网站中断的情况下刷新MySQL表?

Sle*_*ter 3 mysql high-availability mysqlimport

每天一次,我需要使用ftp和mysqlimport从Net下载的新文件更新MySQL表.但是,我希望我的网站在mysqlimport操作期间保持平稳运行,这需要相当长的时间(这是一个很大的表).什么是确保用户不等待导入完成的好方法?我正在考虑导入临时表,然后重命名它.这是一个好计划吗?

ʞɔı*_*ɔıu 8

一个鲜为人知的事实是,您可以在mysql中连接多个重命名语句,它将以原子方式执行所有名称更改.

create table newtable like oldtable;
insert into newtable .......
rename table oldtable to deleteme, newtable to oldtable;
drop table deleteme;
Run Code Online (Sandbox Code Playgroud)

重命名表将阻止读者(实际上它将阻止名称的任何解析)但应该是一个非常快速的操作.