我有一张包含100,000条记录的表格。 我正在考虑使用事务来更新数据。 将有一个查询将一列更新为零,并且需要5000个更新,每个更新将更新一条记录。
这些大型交易对内存的影响是什么? 在交易运行时选择数据会有什么重大问题吗?
修改
感谢您的回答。
答案 0 :(得分:0)
计划A:2 UPDATE
个陈述 - 1表示零,1表示其他5000.但也许这不实用?
计划B :(效率不如计划A)单个交易中的5001 UPDATE
个语句(BEGIN...COMMIT
)
计划C :(非常慢)autocommit = 1,但没有BEGIN..COMMIT
没有“记忆”问题。但是,建议将innodb_buffer_pool_size设置为可用 RAM的大约70%。
如果缓存了所有必需的块(可能是几十个块或几千块),那么计划A或B将花费几秒钟。计划C可能需要几分钟,具体取决于一些innodb设置。
SELECT
不应受到任何方法的影响。由于行级锁的交互,可能 你可能没有注意到影响。