问题是这么搞的话需要用 reorg partition 的方法来重建分区表,reorg partition 可能并没有把普通表的数据导出再导入来的效率高。
没有性能问题就可以不建啊,这个没有啥必须的。表已经用 id 建了聚簇索引,说明你的 id 就是分区列,用着没问题即可。
用 key.PrefixNextKey 找到区间的结尾,然后构造一个 iter 去遍历一遍。
比如 channel_1 的 PrefixNextKey 就是 channel_2,构造出来的区间就是 [channel_1, channel_2)
unistore 底下用的存储引擎是 badger,可能这个库在高并发下有锁竞争之类的问题?tidb 应该是没有专门做 batch 之类的操作的
不能,_tidb_rowid 的分配和 auto_id 是同一个分配机制。每个 tidb 实例会预先分配一部分作为 cache,所以可能会出现跳号的情况。
没有商业化的案例,现在只是在测试里面用到。需要单机使用 tidb 的话,为什么不用别的专门的单机数据库呢?
可能只能给 br 提个需求,让他在备份恢复完成之后 rebase 一下 auto id
没办法,除非你改成 AUTO_ID_CACHE = 1。
普通的 auto_id,你如果有两个不同的 tidb instance,两个都往一个表写,一个会是 1 开始,另一个就是 30001 开始。
怎么算自动化运维?crontab?监控 + 脚本?自动报警?自动扩容?
有太多被删掉的数据了,limit 1 就会导致并发的 rpc 只有一个,然后一个一个 region 去读,但的读到的 region 数据都被删掉了,就会一个个找下去,每个 rpc 的耗时几十毫秒,总体耗时就高了。
txn 的话 rust 也没有 batchset 吧。
按我的理解,事务模型下,set 都只是写到 membuffer 里,都是内存操作,一次写一个和多个没有啥性能上显著的区别。相对的有和 tikv 交互的 rpc,比如 lockkeys 就支持一次处理多个 key。