无法analyze表

更新统计信息试试

CREATE TABLE V_API_HDR_VISIT (
VISIT_ROWKEY varchar(500) NOT NULL COMMENT ‘主键’,
ORG_CODE varchar(500) DEFAULT NULL COMMENT ‘机构编码’,
ORG_NAME varchar(500) DEFAULT NULL COMMENT ‘机构名称’,
PATIENT_NAME varchar(500) DEFAULT NULL COMMENT ‘患者姓名’,
DATE_OF_BIRTH varchar(500) DEFAULT NULL COMMENT ‘出生日期’,
REGISTRATION_TIME varchar(500) DEFAULT NULL COMMENT ‘患者登记时间’,
ID_CARD_NO varchar(500) DEFAULT NULL COMMENT ‘身份证号’,
OUTP_NO varchar(500) DEFAULT NULL COMMENT ‘门诊号’,
SD_SEX int(11) DEFAULT NULL COMMENT ‘性别’,
SD_SEX_CODE varchar(500) DEFAULT NULL COMMENT ‘性别编码’,
SD_SEX_NAME varchar(500) DEFAULT NULL COMMENT ‘性别名称’,
SD_VISIT_TYPE int(11) DEFAULT NULL COMMENT ‘就诊类型’,
SD_VISIT_TYPE_CODE varchar(500) DEFAULT NULL COMMENT ‘就诊类型编码’,
SD_VISIT_TYPE_NAME varchar(500) DEFAULT NULL COMMENT ‘就诊类型名称’,
HIS_PAT_ID varchar(500) DEFAULT NULL COMMENT ‘患者业务唯一号’,
VISIT_NUM varchar(500) DEFAULT NULL COMMENT ‘就诊次’,
OUT_TIME varchar(500) DEFAULT NULL COMMENT ‘就诊时间’,
CURRENT_AGE smallint(6) DEFAULT NULL COMMENT ‘就诊年龄’,
SC_OUT_DEPT varchar(500) DEFAULT NULL COMMENT ‘就诊科室编码’,
ST_OUT_DEPT varchar(500) DEFAULT NULL COMMENT ‘就诊科室名称’,
SC_OUT_DOCT varchar(500) DEFAULT NULL COMMENT ‘就诊医师编码’,
ST_OUT_DOCT varchar(500) DEFAULT NULL COMMENT ‘就诊医师名称’,
SD_VISIT_STATE int(11) DEFAULT NULL COMMENT ‘就诊状态’,
SD_VISIT_STATE_NAME varchar(500) DEFAULT NULL COMMENT ‘就诊状态名称’,
SD_VISIT_STATE_CODE varchar(500) DEFAULT NULL COMMENT ‘就诊状态编码’,
DIAG_CODE varchar(500) DEFAULT NULL COMMENT ‘诊断编码’,
DIAG_NAME varchar(500) DEFAULT NULL COMMENT ‘诊断名称’,
ADMISSION_TIME varchar(500) DEFAULT NULL COMMENT ‘入院时间’,
DISCHARGE_TIME varchar(500) DEFAULT NULL COMMENT ‘出院时间’,
SC_ADM_DEPT varchar(500) DEFAULT NULL COMMENT ‘入院科室编码’,
ST_ADM_DEPT varchar(500) DEFAULT NULL COMMENT ‘入院科室名称’,
SC_ADM_WARD varchar(500) DEFAULT NULL COMMENT ‘入院病区编码’,
ST_ADM_WARD varchar(500) DEFAULT NULL COMMENT ‘入院病区名称’,
SC_ADM_BED varchar(500) DEFAULT NULL COMMENT ‘入院病床编码’,
ST_ADM_BED varchar(500) DEFAULT NULL COMMENT ‘入院病床名称’,
ADT_DEPT_NUM bigint(20) DEFAULT NULL COMMENT ‘转床序号’,
SC_CUR_DEPT varchar(500) DEFAULT NULL COMMENT ‘当前科室编码’,
ST_CUR_DEPT varchar(500) DEFAULT NULL COMMENT ‘当前科室名称’,
SC_CUR_BED varchar(500) DEFAULT NULL COMMENT ‘当前病床编码’,
ST_CUR_BED varchar(500) DEFAULT NULL COMMENT ‘当前病床名称’,
SC_DIS_DEPT varchar(500) DEFAULT NULL COMMENT ‘出院科室编码’,
ST_DIS_DEPT varchar(500) DEFAULT NULL COMMENT ‘出院科室名称’,
SC_DIS_WARD varchar(500) DEFAULT NULL COMMENT ‘出院病区编码’,
ST_DIS_WARD varchar(500) DEFAULT NULL COMMENT ‘出院病区名称’,
IN_DAYS varchar(500) DEFAULT NULL COMMENT ‘住院天数’,
INP_NO varchar(500) DEFAULT NULL COMMENT ‘住院号’,
UPDATED_AT timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’,
CREATED_AT timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
PRIMARY KEY (VISIT_ROWKEY) /*T![clustered_index] CLUSTERED */,
KEY IDX_ORG_CODE (ORG_CODE),
KEY IDX_PATIENT_NAME (PATIENT_NAME),
KEY IDX_ID_CARD_NO (ID_CARD_NO),
KEY IDX_OUTP_NO (OUTP_NO),
KEY HIS_PAT_ID (HIS_PAT_ID),
KEY OUT_TIME (OUT_TIME),
KEY SD_VISIT_TYPE_CODE (SD_VISIT_TYPE_CODE),
KEY SC_OUT_DOCT (SC_OUT_DOCT),
KEY ST_OUT_DOCT (ST_OUT_DOCT),
KEY SC_OUT_DEPT (SC_OUT_DEPT),
KEY ST_OUT_DEPT (ST_OUT_DEPT),
KEY SD_VISIT_STATE_CODE (SD_VISIT_STATE_CODE),
KEY ADMISSION_TIME (ADMISSION_TIME),
KEY SC_ADM_DEPT (SC_ADM_DEPT),
KEY ST_ADM_DEPT (ST_ADM_DEPT),
KEY SC_ADM_WARD (SC_ADM_WARD),
KEY ST_ADM_WARD (ST_ADM_WARD),
KEY DISCHARGE_TIME (DISCHARGE_TIME),
KEY SC_DIS_DEPT (SC_DIS_DEPT),
KEY ST_DIS_DEPT (ST_DIS_DEPT),
KEY SC_DIS_WARD (SC_DIS_WARD),
KEY ST_DIS_WARD (ST_DIS_WARD),
KEY INP_NO (INP_NO),
KEY UPDATED_AT (UPDATED_AT),
KEY CREATED_AT (CREATED_AT)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT=‘门诊就诊表’;

看执行节点的tidb组件日志就可以对吧

这个咋更新啊,analyze不是更新统计信息吗

你直接拷贝一张空表,然后再analyze table,看看能成功不

这个可以成功,但是灌了一下数据之后再analyze就报错

导入一行数据就报错吗?还是导入到一定程度就报错?

到了一定程度

你只保留主键,其他索引去掉,这样再导入数据 analyze table试试

蹲一手,

show create table table_name,怎么看着像视图

是表来的,表结构上面有发的

意思是索引过多可能会有这样的问题吗,这张表索引确实很多,索引的数据大小和表的数据大小差不多

推测是,如果只保留主键的情况下,能正常analyze table,那说明遇到产品BUG了 :upside_down_face:

:face_with_spiral_eyes:我试试把索引都删掉看看

哪个版本,应该是一个已知bug,看看能否使用非字符串类型主键来规避

Primary key column not found · Issue #38935 · pingcap/tidb (github.com)

1 个赞

版本是6.5.3,主键的话,不行只能搞个 AUTO_RANDOM


如果改不了的话试一下这个参数看看
系统变量 | PingCAP 文档中心

关闭fast analyze是吗,我试试

嗯呢,对,可以session级别试下看看