我现在有两个SQL文,第一个可以正常执行,第二个一执行MySQL就崩溃。。 崩溃指的是:docker里面对应的那个MySQL容器直接没了,docker ps -a都看不到的那种。 > 第一个SQL文: update cfg_dev_network_push_status as T1 inner join cfg_dev_network_bind_status as T2 on T1.task_id = T2.id and T1.del_flag = '0' and T1.push_type = '1' and T1.push_result != '0' and T1.push_retry_times 第二个SQL文: update cfg_dev_network_push_status as T1 inner join cfg_dev_network_bind_status as T2 on T1.task_id = T2.id and T1.del_flag = '0' and T1.push_type = '1' and T1.push_result != '0' and T1.push_retry_times < 3 and T2.del_flag = '0' and T2.dev_id = 'theDevId' and T2.status = '1' set T1.push_retry_times = T1.push_retry_times + 1, T1.push_status = '1', T1.push_end_time = '20231010141154002', T1.push_result = '1', T1.fail_reason = '109' order by T1.push_status desc, T1.push_retry_times desc, T1.id asc 经测试,第二个SQL文里面,`T1.push_status desc`和`T1.push_retry_times desc`,加任意一个,都会导致MySQL崩溃,只有`T1.id asc`的时候,是可以正常执行的。 push_status的数据类型是char(1),数据里面非0即1。 push_retry_times的数据类型是int。 数据库中两个表的数据都在50条左右,不存在内存过大的影响; 直接在DBeaver中进行数据查询,不考虑锁的影响。 之后我在服务器中没找到MySQL相关崩溃的日志。。。。 所以,为啥会崩呗,求各路大神帮助~ ================================================================= 建表文如下所示 -- `lebon-infra-dev`.cfg_dev_network_push_status definition CREATE TABLE `cfg_dev_network_push_status` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '流水号 | 与id为同一字段,自增数列', `task_id` varchar(16) NOT NULL COMMENT '任务ID', `push_status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '0' COMMENT '推送状态(0:待推送/1:已推送/2:已取消)', `push_plan_time` char(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '预约推送时间(YYYYMMDDHHMMSS)', `push_type` char(1) NOT NULL COMMENT '推送种类(1:推送配置项/2:推送优先度/3:推送重启命令)', `dev_id` varchar(32) NOT NULL COMMENT '设备ID', `config_group_id` varchar(16) NOT NULL COMMENT '配置组ID', `config_item_id` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '配置项ID', `push_begin_time` char(17) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '00000000000000000' COMMENT '推送开始时间(YYYYMMDDHHMMSSFFF)', `push_end_time` char(17) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '00000000000000000' COMMENT '推送结束时间(YYYYMMDDHHMMSSFFF)', `push_duration_s` int NOT NULL DEFAULT '0' COMMENT '推送耗时', `push_result` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '推送结果0:成功/1:失败', `fail_reason` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '失败原因', `push_retry_times` int NOT NULL DEFAULT '0' COMMENT '重试次数', `remark` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '备注', `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '0' COMMENT '删除状态', `version` int NOT NULL DEFAULT '0' COMMENT '版本锁', `create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '创建人', `create_time` datetime NOT NULL COMMENT '创建时间', `update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`), UNIQUE KEY `cfg_dev_network_push_status_un` (`id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=149 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='配置-终端网络配置推送状态'; -- `lebon-infra-dev`.cfg_dev_network_bind_status definition CREATE TABLE `cfg_dev_network_bind_status` ( `id` bigint NOT NULL AUTO_INCREMENT COMMENT '任务ID | 与id为同一字段,自增数列', `dev_id` varchar(32) NOT NULL COMMENT '设备ID', `config_group_id` varchar(16) NOT NULL COMMENT '配置组ID', `config_group_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '配置组名', `status` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '0' COMMENT '状态', `push_plan_time` char(14) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '预约推送时间(YYYYMMDDHHMMSS)', `push_begin_time` char(17) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '00000000000000000' COMMENT '推送开始时间(YYYYMMDDHHMMSSFFF)', `push_end_time` char(17) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '00000000000000000' COMMENT '推送结束时间(YYYYMMDDHHMMSSFFF)', `push_duration_s` int NOT NULL DEFAULT '0' COMMENT '推送耗时', `effective_time` char(17) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '00000000000000000' COMMENT '实际生效时间(YYYYMMDDHHMMSSFFF)', `invalid_time` char(17) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '00000000000000000' COMMENT '实际失效时间(YYYYMMDDHHMMSSFFF)', `fail_reason` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '失败原因', `cancel_reason` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '取消原因', `operator` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '操作者', `remark` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '' COMMENT '备注', `version` int NOT NULL DEFAULT '0' COMMENT '版本锁', `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '0' COMMENT '删除状态', `create_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '创建人', `create_time` datetime NOT NULL COMMENT '创建时间', `update_by` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `cfg_dev_network_bind_status_un` (`id`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=1070 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='配置-终端网络配置绑定状态';