如何执行选择查询,而不锁定更新查询

Posted

技术标签:

【中文标题】如何执行选择查询,而不锁定更新查询【英文标题】:How to execute select queries, while not locking update queries 【发布时间】:2012-09-26 04:44:50 【问题描述】:

我有一个表,每隔几秒我就会收到大量的选择查询。因此,我的更新查询被锁定了很长时间。有什么方法可以让我的选择查询执行,同时不锁定我的更新查询而不将我的表转换为innoDB。我正在使用 mysql 5.5

【问题讨论】:

【参考方案1】:

重复许多其他问题 - 例如this one - 关于 MyISAM 的脏读。如果不更换引擎,您无能为力,只能根据某些标准将数据分段到多个表中以减少行数和并发访问数。

而且,实际上,没有人愿意以任意且不必要的复杂方式分割他们的数据。

如果您的所有查询都是按索引列进行的,您可能想看看 [Handler] (http://dev.mysql.com/doc/refman/5.0/en/handler.html),但我从未使用过它,所以我不能说它对您的效果如何。

【讨论】:

以上是关于如何执行选择查询,而不锁定更新查询的主要内容,如果未能解决你的问题,请参考以下文章

如何锁定SQL开发人员以允许SELECT查询

悖论:查询而不锁定数据库文件

选择从 JPA 级别锁定的更新跳过

数据库是不是总是在查询或更新后锁定不存在的行?

未找到锁定文件。更新依赖项而不是从锁定文件安装。奥罗商业

如何在单个查询完成执行之前锁定事务以防止出现死锁错误