何时考虑支持PostgreSQL?
现在全世界都在 【去存储过程】,这个提议有点倒行逆施啊。
存储过程是用来做批处理的,java,python,Hadoop全家桶,现在的云平台还有DataFactory 都可以做啊。
现在业界 总体上 是 反存储过程,反触发器 的,,,技术上也不好实现,现在数据都是分布在几十台机器上,怎么存储过程啊,怎么触发器啊 ?? 业界反对这俩,也主要是 很多应用被绑死,不好扩展,不好迁移,性能不达标等好多负面的经历。
哈哈,这个是历史遗留问题,倒不是不能解决这个问题,需要花些人力成本和时间去处理。
可以考虑直接使用TiKV的raw kv并开启titan,写入的时候key要分散,避免热点
暂时没计划。
功能/改进说明:慢 SQL 直接记录到表里,不用再查询底层慢 SQL 文件,需要有参数指定保留天数。
为什么需要这个功能/改进:能够方便慢 SQL 的所有分析,实时/天级别慢 SQL 分析,就不用再分析慢SQL文件了。
其他数据库对应功能:无 。
功能/改进说明 : 支持函数 get_lock && release_lock
为什么需要这个功能/改进 :提高业务方开发效率
其他数据库对应功能 :mysql 支持
- 功能/改进说明 :MySQL 的 or 语法支持索引 select a from test where b = ‘x’ or c = ‘x’;
- 为什么需要这个功能/改进 :在切换 TiDB 的时候,发现带有 or 的查询速度明显要慢很多,而使用 union 处理 SQL 会带来很大工作量。
- 其他数据库对应功能 :MySQL
- 功能/改进说明: 支持case insensitive string search.
- 为什么需要这个功能/改进:实现与MySQL兼容的做法。
-
其他数据库对应功能:MySQL默认支持case insensitive string search; 参考issue: Executing the statement of
select ... col like 'String'
gets the wrong result when col is unique key. #1161
晚了一天, 先提再说…
功能/改进说明 :
提升对mysql ddl语法的兼容性, 主要有4点:
- 允许修改decimal精度
- 允许在1个ddl语句里进行多个变更, 例如alter table add column xxx, add column xxx;
- 允许在某些条件下类型之间的转换, 例如int或decimal类型的字段允许转成字符型的
- 允许修改主键
为什么需要这个功能/改进 :
- 在做ddl的时候mysql为了减少表的拷贝次数, 一般建议对同一个表的ddl合并成一条语句, 但是tidb却要反着来, 导致同步数据至tidb时有很多困难.
- 不允许修改decimal的精度, 导致业务开发很为难, 同步数据至tidb也会有困难
- 修改主键的需求虽然是低频, 但也不是没有, 每次遇到就很难受
其他数据库对应功能 :mysql ddl
DDL 兼容性是一个很大的话题,希望能够将需求列的更加具体一些,方便我们针对性的开发,让那些迫切需要的功能尽快落地到未来的某个 TIDB 版本中。“允许修改decimal的精度” 是一个不错的需求例子,可以把其他需求也这样细化吗?
ddl兼容性主要有4点:
- 允许修改decimal精度
- 允许在1个ddl语句里进行多个变更, 例如alter table add column xxx, add column xxx;
- 允许在某些条件下类型之间的转换, 例如int或decimal类型的字段允许转成字符型的
- 允许修改主键
- 功能/改进说明 : 增加select @next_id from table的语法 返回下一次自增id的值 占用掉这个id
- 为什么需要这个功能/改进 :分布式系统往往会依赖取号器 在我们业务中是先获取id接口返回 再异步写入db tidb本身已经实现了取号器的功能 缺乏一个语法暴露出来 避免第三方取号器的依赖
- 其他数据库对应功能 :无
功能/改进说明:DM in k8s
为什么需要这个功能/改进 :当前DM是单点,没有高可用,期待DM能在k8s内运行
其他数据库对应功能 :暂无
- 功能/改进说明 : 监控如果能看到用户链接信息的统计会比较方便;有单表或者库的数据量预估
- 为什么需要这个功能/改进 :需要定位用户分布和库表容量变化趋势,帮助规划集群容量
- 其他数据库对应功能 :promtheus 有mysql的用户统计和表统计图表
- 功能/改进说明 :RawKV支持备份恢复
- 能够创建一个snapshot并备份该snapshot数据到文件中
- 能够从备份的文件中恢复数据
- 能够从类似binlog中恢复增量数据
-
为什么需要这个功能/改进 :该功能是企业级应用中不可缺少的功能,实现容灾和容错的需要
-
其他数据库对应功能 :MySQL 支持备份恢复,尽管TiDB有这个功能,但是TiKV还没有。
- 功能/改进说明 :按照负载决定region-transfer与split,高压力下尽量少transfer、split
- 为什么需要这个功能/改进 :
- OLTP的场景通常具有高低峰期而不是恒定的压力。
- 高写入压力下,region更容易出现transfer和split
- region-transfer与split对于OLTP场景下的单个请求响应影响很大
- transfer和split通常没有那么急切,但是目前的阈值设置过于简单
- 我们目前的解决方案是在高压力下将阈值调粗放,低峰期调低阈值开始transfer与split
- 其他数据库对应功能 :暂无,类似的OB会在每天晚上低峰期做增量数据与基线数据合并
我也提几个吧:
1,hash join 下推到 TiKV。
2,分区表支持全局索引。
3,TiDB Server 内存持久化临时表,减少 OOM。
4,Follower read 的基础上支持 local read。
5,加强逻辑优化规则,比如 subquery 与 join;in、union、exists 支持互相 rewrite 的基础上,物理优化,可以全局通过 CBO 找最近路径。
-
功能/改进说明 : 支持按一定规则自增字段, 例如,ID奇偶增长
-
为什么需要这个功能/改进 : 数据汇聚业务有一个典型场景:上游有一个MySQL主库(MySQL 可以设置ID奇数或偶数增长),又有多个程序,同时往下游TiDB增量导入和插入数据,在此的情况下,此功能可以通过自增规则避免上游增量导入数据的MySQL自增ID和TiDB生成ID的冲突问题(如果采用程序查询最大ID +1的方式来生成唯一ID, 则可能会出现多进程同步竞速问题)。
-
其他数据库对应功能 :MySQL支持设置字段自增步长:set auto_increment_increment