【 TiDB 使用环境】
centos7
【问题】 当前遇到的问题
同一个库执行sql
有的节点,数据没导成功?
select count(*) from hs_cp_bd
; 结果0行
select count(*) from hs_cp_bd
LIMIT 0,1000; 有数据
【TiDB 版本】
v5.1.0
【附件】
【 TiDB 使用环境】
centos7
【问题】 当前遇到的问题
同一个库执行sql
有的节点,数据没导成功?
select count(*) from hs_cp_bd
; 结果0行
select count(*) from hs_cp_bd
LIMIT 0,1000; 有数据
【TiDB 版本】
v5.1.0
【附件】
没明白你的问题,你是有多个tidb的节点,然后每个节点上查询数据的结果不一样么?
不加limit显示统计数量为0?analyze下看看呢
执行完,统计数量还是0
explain analyze看下,贴个执行计划,然后看看tidb和tikv有啥不一样,集群贴下display
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}}}
explain analyze select count() …;
explain analyze select count() … limit
这两个看下,就是你那两个查询前面加上explain analyze
看这执行计划是有问题的,给弄成0行了,建表语句贴一下,稍后还有个问题,这个表同步到tiflash了么
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;
怎么看有没有同步到tiflash
你要没有手动同步就是没有同步,看是这么看
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}
嗯,没完成呢吧,或者重新导入下看看,可能有tikv节点没有数据
我再重新导入试下