0

我有一个表,其中 id 是主键和序列。在事务中我调用序列

select NEXTVAL(next_cons_id) as next_cons_id

然后创建一个新记录,其中字段 id = next_cons_id 从下面的代码中获得。

DDL 序列

CREATE SEQUENCE IF NOT EXISTS next_cons_id START WITH 1;

在大多数情况下,它运作良好。做了一项小型研究后,我发现了一些模式。

Id, ... gap ..., nextId
606401,605557,
604556,605401,
603555,604401,
602594,603401,
601594,602401

带日期的 ID:

601594  2019-10-10 00:04:54
602401  2019-10-10 01:36:33
602594  2019-10-10 21:46:43
603401  2019-10-11 01:19:49
603555  2019-10-11 21:41:26
604401  2019-10-12 00:30:09
604556  2019-10-13 00:15:32
605401  2019-10-13 03:51:42
605557  2019-10-13 22:42:22
606401  2019-10-14 02:14:28

在我创建了控制台脚本之后,该脚本每秒在测试表中插入一条记录:

237343  2019-10-14 00:31:03 2019-10-14 00:31:03
237344  2019-10-14 00:31:03 2019-10-14 00:31:03
....gap...
238000  2019-10-14 00:31:04 2019-10-14 00:31:04

它表只使用测试脚本。

但是是时候我们可以看到一些问题了: 在此处输入图像描述

此时没有网络问题 在此处输入图像描述

在监控zabbix回滚事务时未发现。

数据库有一个复制服务器。

服务器版本:10.3.13

你有什么想法来解决这个问题吗?

UPD:我删除了序列并重新创建了这个表, id primary key autouncrement但是这种情况已经重复了。

4

0 回答 0