【发布时间】:2015-04-23 15:29:35
【问题描述】:
我正在开发一个 MySQL 数据库并运行一个 cronjob php 脚本,该脚本在数据库上执行单个查询以计算数据并替换数据库中的表。查询大约需要两秒钟,所以我不能在开始之前截断表,因为我希望用户在新数据不完整时看到旧数据。我的第一个想法是创建一个新表,运行查询,删除旧表并重命名新表。有没有更好的方法来做到这一点?理论上有人仍然可以在我的 drop 和 rename 查询之间请求数据。
【问题讨论】:
我正在开发一个 MySQL 数据库并运行一个 cronjob php 脚本,该脚本在数据库上执行单个查询以计算数据并替换数据库中的表。查询大约需要两秒钟,所以我不能在开始之前截断表,因为我希望用户在新数据不完整时看到旧数据。我的第一个想法是创建一个新表,运行查询,删除旧表并重命名新表。有没有更好的方法来做到这一点?理论上有人仍然可以在我的 drop 和 rename 查询之间请求数据。
【问题讨论】:
在transaction 中执行更新。
直到你COMMIT交易,用户才会看到旧数据。
【讨论】: