为提高效率,请提供以下信息,问题描述清晰能够更快得到解决:
【 TiDB 使用环境】
测试环境
【概述】 场景 + 问题概述
一张表,有一个主键字段, 对这张表的数据进行查询操作,如果查询语句的执行计划用到了主键的索引,那么查询的结果数据量100W+ , 如果查询的语句走了全表扫描, 则查询结果200W+
基本上可以肯定是主键索引和表中数据不一致导致的。
比如:select count(*) 或者 select count(主键) 结果100W
select 主键 返回所有数据 100W
select count(其他字段) 结果200W
select * 或者 select 其他字段返回全部数据, 结果200W
此表 OB_OBJECT_ID 为主键
从实际查询的数据来看,表中也确实存在重复数据,比如:
【应用框架及开发适配业务逻辑】
【背景】 做过哪些操作
之前的历史数据应该是通过 TiDB Lightning 工具导入的, 感觉重复的部分应该是工具导入造成的,但数据导入的时候,表上是有主键的。
【现象】 业务和数据库现象
无论是通过程序的jdbc或者c# mysql驱动,还是通过第三方工具,查询结果都相同。
【问题】 当前遇到的问题
【业务影响】
【TiDB 版本】
TIDBV5.3.0
【附件】 相关日志及监控(https://metricstool.pingcap.com/)
若提问为性能优化、故障排查类问题,请下载脚本运行。终端输出的打印结果,请务必全选并复制粘贴上传。
2 个赞
db_user
(Db User)
2
admin check table table_name试下呢
1 个赞
逍遥_猫
4
admin check table table_name 这个当表的数据量很大时,对业务会有影响吗?
1 个赞
db_user
(Db User)
5
应该是会有一定影响的,感觉和mysql的check table命令差不太多
1 个赞
逍遥_猫
8
有个疑问,当 索引中有相同的值时,索引的值是怎么存储的?
1 个赞
原来表上有一个主键,一个唯一性索引,删除唯一性索引并重建,报唯一性冲突, 表中的数据是肯定重复了
1 个赞
db_user
(Db User)
15
1 个赞
拓扑:
3个pd, 3个tidb 公用3台服务器
5个tikv, 5台服务器
和上面的问题不同, 我导入了几十张表,目前就发现这一张表有问题,应该不是权限的问题。
db_user
(Db User)
17
有一种猜想啊,不知道对不对,可以先把当时dumpling的日志贴下,然后看看pd-ctl中
region check down-peer;
region check miss-peer;
等等,看看是不是有问题
导入数据有一段时间了, 日志找不到了, 这里咨询下,我们用tidb-lightning工具进行数据导入的时候,我们需要做哪些工作,以确保导入的数据是完整的?
db_user
(Db User)
19
我是主要看下三种导入模式的注意事项,然后导入成功之后看下日志最后是否是success,如果还不放心的话,可以手动做下check,analyze