一个 MySQL 查询会冻结所有其他即将到来的查询吗?

Posted

技术标签:

【中文标题】一个 MySQL 查询会冻结所有其他即将到来的查询吗?【英文标题】:Does one MySQL Query Freeze All Other Upcoming Queries? 【发布时间】:2016-04-09 15:45:36 【问题描述】:

我想每小时执行一次 mysql 查询以计算一个表中的一些行(超过 10M 行)并更新另一个表中的 int 值。查询大约需要 1-2 分钟才能完成。在处理这个查询时,我可以运行其他 MySQL SELECT 查询吗?

【问题讨论】:

原则上是的。数据库可以同时支持多个查询。当然,可用资源取决于您的硬件和系统参数。尝试同时测试运行多个查询,看看会发生什么。 只计算?为什么不在“插入”处增加一个计数器呢?使用简单的锁定机制将保持计数线程安全。但如果你有多台机器,那我就不知道了。 @huseyintugrulbuyukisik 它适用于我必须保留所有不同值及其计数的应用程序。好复杂哦 【参考方案1】:

是的,数据库结构旨在用于几乎同时访问数据。每个查询的速度取决于分配给每个查询的服务器资源,因此您可能会遇到比预期更慢的查询时间。

【讨论】:

以上是关于一个 MySQL 查询会冻结所有其他即将到来的查询吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取满足匹配对象的关联文档

HTACCESS-将所有其他用户重定向到即将到来的页面

如何从 hsqldb 中的日期检索当前日期和 day_of_month 以列出即将到来的生日

如果没有找到记录,Mysql 复杂查询生成计数为零的所有表

为啥mysql里有些查询会出现locked呢

Django Pagination - 查询参数(url)