Mic*_*oie 3 mysql database-design
我有一个 MySQL 表,其中包含数千条记录,这些记录很快就会过时。每天有几次我们运行一个缓慢的过程,需要从多个来源提取数据并重新填充表。
问题是桌子需要一直可用。我最初的想法是在临时表上执行缓慢的填充过程,然后删除实时表并重命名临时表以替换实时表。
是否可以在删除/重命名过程之前锁定活动表,以便查询延迟而不丢失?
或者这是错误的方法?
您可以通过在 RENAME 语句中指定两个表来进行交换。
CREATE TABLE new_table (...);
RENAME TABLE old_table TO backup_table, new_table TO old_table;
Run Code Online (Sandbox Code Playgroud)
重命名操作以原子方式完成,这意味着在重命名运行时没有其他会话可以访问任何表。例如,如果现有表old_table,则可以创建另一个结构相同但为空的表new_table,然后将现有表替换为空表...
| 归档时间: |
|
| 查看次数: |
1598 次 |
| 最近记录: |