我正在尝试修复我们服务器上的 MySQL 配置。我们的应用程序的特点是大量数据存储在单个表中(目前超过 3 亿行)。该表经常用于插入(它们总是出现)。
当我在该表上运行超过几秒钟的选择查询时,所有插入(确切地提交)都在等待表访问,并使我们的应用程序无响应。
据我所知 InnoDB 在 select 运行时不会对表进行任何锁定。为什么选择阻塞表呢?
我试图找到 innotop 的原因,但我不确定如何解释它的输出以及在哪里搜索。告诉我你需要什么,我会在这里发布。
+-----+---------+-----------+--------+---------+------+----------------+-----------------------------------------------------------------------------------------------------------------------------------+
| Id | User | Host | db | Command | Time | State | Info |
+-----+---------+-----------+--------+---------+------+----------------+-----------------------------------------------------------------------------------------------------------------------------------+
| 1 | root | localhost | dbname | Query | 29 | NULL | COMMIT |
| 2 | root | localhost | dbname | Query | 30 | NULL | COMMIT |
| 4 | root | localhost | dbname | Query | 29 | …Run Code Online (Sandbox Code Playgroud)