我是MySQL/MariaDB新手。
我有一个应用程序,它可以将大量数据以短时间的方式插入到MariaDB数据库中。这一系列测试(或运行)在30秒内始终停止,但从未完成(如果我将应用程序中的运行时设置为10秒,它可以工作,但没有任何价值)。
DB和app托管在Linux塔上,专门用于这个应用程序。它连接到用户目录的NetApp。
当任务运行时,我的进程列表的一个片段:
Id |user |host |db |command |time|state |info |progress
1345|myuser |server.company.com:1234|MyDB|sleep |268 | | | 0.000
1319|DELAYED |localhost |MyDB|Delayed insert|131 |Waiting for insert| |0.000我在DB上有很多处于睡眠状态的连接,其中一个总是“延迟插入”。
我迄今所做的:
我能做些什么来解决这个问题?
EDIT1:
以下是我可以发布的一些新的数据点:
我启用了日志记录,并发现了以下内容:
[WARNING] aborted connection 1234 to db: 'mydb" user: 'myuser' host: 'company.com' (Got an error reading communication packets)我使用tcpdump并监听接口lo (本地主机)。
我发现了以下
mytab.tab (我唯一的键)引擎MyISAM commet=‘{“所有者”:“Me”}’插入.10.XXX.XX.12:/vol/n02vol2/data读取文件的调用Select count(*) from information_schema.TAB (截断)不活动5分钟后,腻子连接超时。
MariaDB是一个5版本
发布于 2023-01-11 00:49:31
听起来你在使用MyISAM。您应该更改为ENGINE=InnoDB。
在许多情况下,InnoDB允许多个并发INSERTs。MyISAM的“延迟”特性在InnoDB中本质上是不必要的,关键字可能只是被默默地忽略了。
我怀疑您遇到过MyISAM比InnoDB慢(可能显著)的情况。
这可能显示值为1800 (30分钟):
SHOW VARIABLES LIKE '%timeout';如果您能够共享查询(包括即将结束的查询和阻止程序)和SHOW CREATE TABLE,我们可能会有进一步的提示。
https://dba.stackexchange.com/questions/321956
复制相似问题