首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是MYSQL延迟插入?

问什么是MYSQL延迟插入?
EN

Database Administration用户
提问于 2023-01-10 19:06:42
回答 1查看 123关注 0票数 0

我是MySQL/MariaDB新手。

我有一个应用程序,它可以将大量数据以短时间的方式插入到MariaDB数据库中。这一系列测试(或运行)在30秒内始终停止,但从未完成(如果我将应用程序中的运行时设置为10秒,它可以工作,但没有任何价值)。

DB和app托管在Linux塔上,专门用于这个应用程序。它连接到用户目录的NetApp。

当任务运行时,我的进程列表的一个片段:

代码语言:javascript
复制
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上有很多处于睡眠状态的连接,其中一个总是“延迟插入”。

我迄今所做的:

  1. delayed_queue_size从默认到5000
  2. vmstat来查看是否有任何东西阻塞了进程--没有找到
  3. 删除应用程序创建的所有数据库,并再次尝试。

我能做些什么来解决这个问题?

EDIT1:

以下是我可以发布的一些新的数据点:

我启用了日志记录,并发现了以下内容:

代码语言:javascript
复制
[WARNING] aborted connection 1234 to db: 'mydb" user: 'myuser' host: 'company.com' (Got an error reading communication packets)

我使用tcpdump并监听接口lo (本地主机)。

我发现了以下

  1. 创建表mytab.tab (我唯一的键)引擎MyISAM commet=‘{“所有者”:“Me”}’插入.
  2. 从NetApp,10.XXX.XX.12:/vol/n02vol2/data读取文件的调用
  3. tcdump的最后一行是:Select count(*) from information_schema.TAB (截断)

不活动5分钟后,腻子连接超时。

MariaDB是一个5版本

EN

回答 1

Database Administration用户

发布于 2023-01-11 00:49:31

听起来你在使用MyISAM。您应该更改为ENGINE=InnoDB。

在许多情况下,InnoDB允许多个并发INSERTs。MyISAM的“延迟”特性在InnoDB中本质上是不必要的,关键字可能只是被默默地忽略了。

我怀疑您遇到过MyISAM比InnoDB慢(可能显著)的情况。

这可能显示值为1800 (30分钟):

代码语言:javascript
复制
SHOW VARIABLES LIKE '%timeout';

如果您能够共享查询(包括即将结束的查询和阻止程序)和SHOW CREATE TABLE,我们可能会有进一步的提示。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/321956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档