首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySql在不使用模块的情况下更新每第n行以避免死锁

问MySql在不使用模块的情况下更新每第n行以避免死锁
EN

Stack Overflow用户
提问于 2018-08-22 21:09:12
回答 1查看 21关注 0票数 0

我有几个同时运行的查询,每个查询应该更新自己的第n行,这取决于我需要运行的查询的数量。例如,我们需要运行5个查询,因此where子句应该为where (id MOD :queries_amont) = :current_query_number

但是在这种情况下,我得到了死锁,我认为这是因为MySql正在扫描所有行以找到要更新的正确行,因为没有索引可用。

是否可以在同时运行的查询之间平衡行更新?或者如何避免当前实现中的死锁?

EN

回答 1

Stack Overflow用户

发布于 2018-08-22 21:51:45

通常:如果您必须不断地运行一些语句而没有任何事件,那么您的数据库设计可能非常糟糕。如果这些语句需要很长时间,情况会更糟。所以你应该考虑改变它。为了回答您的问题,您可以使用window functions来仅对每第n行进行作用域。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51967666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档