更新存储在某些数据库中的项目列表的最佳模式(就平均性能而言)是什么?
例如,某个用户使用由 N 行组成的表。他可以删除所有行,然后添加 M 行完全不同的数据,或者他可以只更新一行中一个字段的一个字符。
现在,我们使用 DELETE
查询删除所有现有行,然后 INSERT
新行,而不考虑更改了多少数据。
对于这种情况是否存在更有效的模式?
更新:
我们还考虑了两种替代方法:
1) 在更新事务开始时执行SELECT
,分析哪些行被更新/删除/添加,并对数据库应用适当的更改。
2) 使用户界面具有交互性,并针对每个用户的操作发送带有更改数据的 AJAX 请求 - 然后将适当的行标记为已更改。
最佳答案
批量插入、更新和删除将是最好的。如果每次插入、更新和删除都需要访问数据库,您可以执行批量操作。因此,在性能方面,每次插入和更新的往返次数将最小化。您可以批量插入数据,从而最大限度地减少数据库命中
关于mysql - 更新数据库中项目列表的最佳模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17213644/