mysql5.7导入tidbv5.1.0,select count(*)统计数量不准确

【 TiDB 使用环境】
centos7
【问题】 当前遇到的问题
同一个库执行sql
有的节点,数据没导成功?

select count(*) from hs_cp_bd; 结果0行
image

select count(*) from hs_cp_bd LIMIT 0,1000; 有数据

【TiDB 版本】
v5.1.0
【附件】

3 个赞

没明白你的问题,你是有多个tidb的节点,然后每个节点上查询数据的结果不一样么?

3 个赞

不加limit显示统计数量为0?analyze下看看呢

3 个赞

2 个赞

执行完,统计数量还是0
image

2 个赞

explain analyze看下,贴个执行计划,然后看看tidb和tikv有啥不一样,集群贴下display

2 个赞

time:2.01s, loops:1233, cop_task: {num: 10, max: 2.01s, min: 1ms, avg: 619.2ms, p95: 2.01s, max_proc_keys: 310154, p95_proc_keys: 310154, tot_proc: 3.04s, tot_wait: 2ms, rpc_num: 10, rpc_time: 6.19s, copr_cache_hit_ratio: 0.00}

tikv_task:{proc max:479ms, min:0s, p80:463ms, p95:479ms, iters:1257, tasks:10}, scan_detail: {total_process_keys: 1259257, total_keys: 2518528, rocksdb: {delete_skipped_count: 0, key_skipped_count: 2763723, block: {cache_hit_count: 8175, read_count: 0, read_byte: 0 Bytes}}}

2 个赞

explain analyze select count() …;
explain analyze select count(
) … limit
这两个看下,就是你那两个查询前面加上explain analyze

2 个赞

2 个赞

看这执行计划是有问题的,给弄成0行了,建表语句贴一下,稍后还有个问题,这个表同步到tiflash了么

2 个赞
CREATE TABLE `hs_cp_bd`  (
  `CP_TYWYSBM` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '菜品_通用唯一识别码',
  `JG_TYWYSBM` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '机构_通用唯一识别码',
  `CP_MC` varchar(100) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '菜品_名称',
  `CPLXDM` varchar(1) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '菜品类型代码(1:主;2:副;3:汤)',
  `CPSYSDLXDM` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '菜品适用时段类型代码(1-早餐,2-午餐,3-晚餐,4-早餐,午餐,5-早餐,晚餐,6-午餐,晚餐\r\
7-早餐,午餐,晚餐)',
  `CPHSLX` varchar(1) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '菜品荤素类型(1:素菜; 2:荤菜;3:水果)',
  `SFCY` varchar(1) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '是否常用(1:常用;2:不常用)',
  `BZ` text CHARACTER SET utf8 COLLATE utf8_bin NULL COMMENT '备注',
  `YSYCS` int(10) NULL DEFAULT 0 COMMENT '已使用次数',
  `CXLXDM` varchar(2) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '菜系类型代码',
  `XZZ_TYWYSBM` varchar(36) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '新增者_通用唯一识别码',
  `XZ_RQSJ` datetime NULL DEFAULT NULL COMMENT '新增_日期时间',
  `XGZ_TYWYSBM` varchar(36) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '修改者_通用唯一识别码',
  `XG_RQSJ` datetime NULL DEFAULT NULL COMMENT '修改_日期时间',
  `SCBS` varchar(1) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '删除标识',
  PRIMARY KEY (`CP_TYWYSBM`) USING BTREE,
  INDEX `orgId`(`JG_TYWYSBM`) USING BTREE,
  INDEX `CP_TYWYSBM`(`CP_TYWYSBM`) USING BTREE,
  INDEX `updateTime`(`XG_RQSJ`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '本地菜品库' ROW_FORMAT = Compact;
2 个赞

怎么看有没有同步到tiflash:sweat_smile:

1 个赞

你要没有手动同步就是没有同步,看是这么看
SELECT * FROM information_schema.tiflash_replica WHERE TABLE_SCHEMA = ‘<db_name>’ and TABLE_NAME = ‘<table_name>’

那就是没有,explain那个能不能在命令行执行下,看不全,看看indexfullscan走的是哪个索引,那个索引有没有为空的

time:589.8µs, loops:2, cop_task: {num: 1, max: 524.8µs, proc_keys: 0, rpc_num: 1, rpc_time: 514µs, copr_cache_hit_ratio: 0.00}

tikv_task:{time:0s, loops:1}, scan_detail: {total_process_keys: 0, total_keys: 1, rocksdb: {delete_skipped_count: 0, key_skipped_count: 0, block: {cache_hit_count: 7, read_count: 0, read_byte: 0 Bytes}}}

time:9.45ms, loops:1, cop_task: {num: 5, max: 5.24ms, min: 779µs, avg: 1.82ms, p95: 5.24ms, max_proc_keys: 1000, p95_proc_keys: 1000, tot_proc: 2ms, tot_wait: 2ms, rpc_num: 5, rpc_time: 9.06ms, copr_cache_hit_ratio: 0.00}

tikv_task:{proc max:1ms, min:0s, p80:1ms, p95:1ms, iters:10, tasks:5}, scan_detail: {total_process_keys: 1000, total_keys: 2005, rocksdb: {delete_skipped_count: 0, key_skipped_count: 2220, block: {cache_hit_count: 45, read_count: 0, read_byte: 0 Bytes}}}

tikv_task:{proc max:1ms, min:0s, p80:1ms, p95:1ms, iters:10, tasks:5}

lightning_metadata.table_meta,看样子像是没导成功

1 个赞

嗯,没完成呢吧,或者重新导入下看看,可能有tikv节点没有数据

我再重新导入试下