这么多资源,磁盘也很好,建议一台机器部署多个tikv,记得手工设置下storage.block-cache.capacity参数,不要用自动的。再做下numa绑定。性能应该有提升
看着是这个region有问题了,
[image]
重新初始化tiflash副本应该能解决
如果加了组合索引,像你上面的sql肯定走组合索引了,也可以考虑下绑定执行计划或者hint指定下索引。
INSERT INTO t_timestamp(ts) VALUES (NULL);
这样插没问题,应该是
INSERT INTO t_timestamp VALUES (NULL,NULL,NULL);
这样插的时候,tidb把null直接转换成0000-00-00 00:00:00.000了
你的每个tike节点最多能占到storage.block-cache.capacity参数的2.25倍,你这个机器上有3个tikv节点,也就是说你的每个tikv最多占用9G内存,一共27G,所以如果你想限制内存占用把storage.block-cache.capacity参数改到1G是还差不多。。。
不过话说你测试,1个机器,放3个tikv,有啥必要吗?还不如直接用tiup playground部署呢。。。
你先建个表结构一样的临时表,从原表插几万条数据进去,然后在线转换下分区表看下报错不报先。。。
tidb优化器这个走排序字段的索引其实我也觉得做的有点问题,如果过滤字段有索引,一般都是走过滤字段索引更好。除非很极端的情况。。。。
其实主要还是统计信息的事,优化器如果觉得你走vin字段索引,获取的行太多,再去按create_time排序取前50行的效率还不如直接按create_time全索引排序查出来数据再去过滤更快,就会走create_time索引,并不存在固定的多少行,就会走create_time索引,多少行就会走vin索引
你explain analyze看下实际返回的数据和执行计划看看
会产生backoff很正常,业务越忙,产生的概率,越高,你只要对比平常相同的业务时间段,没变多即可。
【你在毕业前学的是什么专业或研究方向】
计算机科学与技术
【如果时光倒流,如果你还想从事数据库相关工作,你会选择读什么专业】
数据库原理与应用
【现在还是学习、从事计算机(数据库)行业的好年代么】
不是
【其他想分享的话】
大学还是的好好学啊,后面有的是时间玩。
说说我的理解:
tidb_table_cache_lease这个值就是缓存表的租约时间,理论上你修改一张缓存表,最长可能等待这么长的时间。
举个例子,你有三个tidb节点ABC,一张缓存表t,租约时间为10秒,A 缓存了t刚4秒钟,B缓存了3秒钟,C刚刚缓存,即0秒钟,ABC的t表剩余租约时间分别为6/7/10。这时如果你在任意一个节点去修改t表,是需要ABC三个节点中的t都过了租约时间才可以修改成功的,也就是必须等C的剩余租约时间10秒钟过去,才能修改这张表。
如果刚刚好,这三个节点都是缓存了这个缓存表10秒钟,剩余租约时间全部是0,那你在任意一个节点去修改t表,都是可以立刻修改成功的…
【你们目前有上云需求吗?】
有一部分在私有云上
【如果上云你会更倾向私有云(BYOC) 还是全托管?】
私有云
【有没有相关实践经验跟大家分享(安全、效率、成本如何)】
k8s部署的tidb,维护比较麻烦,问题排查也不好做。但是如果是私有云给定物理机资源的话,还是挺好用的,类似本地物理机,还可以用私有云的网络负载啥的。
对,只有tidb.log是正在使用的,像红框内的这种都是旧的日志,可以删除的