mysql - 如何在不中断网站的情况下刷新 MySQL 表?

标签 mysql high-availability mysqlimport

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

最佳答案

一个鲜为人知的事实是,您可以在 mysql 中连接多个重命名语句,它会自动执行所有名称更改。

create table newtable like oldtable;
insert into newtable .......
rename table oldtable to deleteme, newtable to oldtable;
drop table deleteme;

重命名表会阻塞读取器(事实上它会阻塞名称的任何解析)但应该是一个非常快速的操作。

关于mysql - 如何在不中断网站的情况下刷新 MySQL 表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1852971/

相关文章:

php - 多项选择并添加更多字段不起作用

asp.net - SQL 连接获取我的 PC 名称

kubernetes - k3s 嵌入式 etcd HA 解决方案不需要负载均衡器吗

mysql - Mysql 中是否有获取最小值或值的函数?

mysql - MySQL 中的目录树 : any way to have both referential integrity and filename uniqueness within a folder?

Mysql - 秒差意外结果

hadoop - 从ClickHouse访问HDFS HA群集失败,错误为HdfsConfigNotFound

elasticsearch - 流利的高可用性设置和副本

mysql - 在mysql中导入日期

当我调用 2 个 OUT 参数时,MySQL 存储过程返回 NULL 值 - 请参阅代码