修复 MySQL 中 Table_locks_waited 高的问题

发布于 2024-12-11 10:26:10 字数 129 浏览 0 评论 0原文

当我查看数据库信息时,我看到以下内容。 Table_locks_waited 较高。我该如何缓解这个问题?

在此处输入图像描述

When I'm looking at info of my database I see the following. Table_locks_waited is high. How do I go about mitigating this problem?

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

少女净妖师 2024-12-18 10:26:10

首先,您应该运行:

 show status like '%\_locks\_%';

这将显示等待的查询与能够立即获取锁的查询的比率。也许你有更高的写入和读取混合,这导致 mysql 必须比最佳状态更频繁地等待,但整体性能无法用单个统计数据进行分析。

我的第一个建议是更改您的表,以便对承受事务负载首当其冲的表使用 Innodb 引擎。 Innodb 具有行锁定而不是表锁定,并且还具有聚集索引和查询数据缓存,这些在许多情况下往往会提高性能。

First you should run:

 show status like '%\_locks\_%';

This will show you the ratio of queries that wait to those that are able to get locks immediately. Probably you have a higher mix of writes to reads, that is causing mysql to have to wait more frequently than is optimum, but overall performance can't be analyzed with a single statistic.

My first suggestion would be to alter your tables so that you are using the Innodb engine for the tables that are bearing the brunt of the transaction load. Innodb has row locking rather than table locking, and also has clustered indexes and query data caching that tend to improve performance in many cases.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文