TiDB 3.0 分布式 DBMS 发布

可得到 分布式DBMS发布 钛数据库 3.0在Google技术的影响下开发的 扳手 и F1。 TiDB 属于混合 HTAP(混合事务/分析处理)系统类别,能够提供实时事务(OLTP)和处理分析查询。 该项目是用 Go 编写的 分发者 在 Apache 2.0 下获得许可。

TiDB 特点:

  • 支持 SQL 并提供兼容 MySQL 协议的客户端接口,可以轻松地将现有的 MySQL 编写的应用程序适配到 TiDB,并且允许您使用通用的客户端库。 除了MySQL协议之外,您还可以使用基于JSON的API和Spark连接器来访问DBMS。
  • SQL 的功能包括索引、聚合函数、GROUP BY、ORDER BY、DISTINCT 表达式、合并(LEFT JOIN / RIGHT JOIN / CROSS JOIN)、视图、窗口函数和子查询。 提供的机会足以组织使用 TiDB 等 Web 应用程序(例如 PhpMyAdmin、 视护目镜 和 WordPress;
  • 横向扩展和弹性:只需添加新节点即可扩展存储和处理能力。 数据分布在具有冗余的节点上,以便在单个节点发生故障时允许操作继续进行。 故障会自动处理。
  • 尽管实际上使用来自多个节点的数据来完成事务,但该系统保证了一致性,并且对于客户端软件来说看起来就像一个大型 DBMS。
  • 为了将数据物理存储在节点上,可以使用不同的后端,例如本地存储引擎GoLevelDB和BoltDB或者我们自己的分布式存储引擎 钛KV.
  • 异步更改存储方案的能力,允许您动态添加列和索引,而无需停止正在进行的操作的处理。

创新:

  • 已经开展了提高生产力的工作。 在Sysbench测试中,3.0版本在执行选择和更新操作时比2.1分支快1.5倍,在TPC-C测试中快4.5倍。 优化影响了各种类型的查询,包括 IN、DO 和 NOT EXISTS 子查询、表合并 (JOIN) 操作、索引的使用等等;
    TiDB 3.0 分布式 DBMS 发布TiDB 3.0 分布式 DBMS 发布

  • 添加了新的 TiFlash 存储引擎,借助列式存储,可以在解决分析问题 (OLAP) 方面实现更高的性能。 TiFlash 补充了之前提供的 TiKV 存储,后者以键/值格式存储行数据,更适合事务处理任务 (OLTP)。 TiFlash 与 TiKV 并行工作,数据继续像以前一样使用 Raft 协议复制到 TiKV 来确定共识,但为每组 Raft 副本创建一个额外的副本,用于 TiFlash 中。 这种方法允许 OLTP 和 OLAP 任务之间更好的资源共享,并且还使事务数据立即可用于分析查询;

    TiDB 3.0 分布式 DBMS 发布

  • 实现了分布式垃圾收集器,可以显着提高大集群下垃圾收集的速度,提高稳定性;
  • 添加了基于角色的访问控制 (RBAC) 的实验性实现。 还可以设置 ANALYZE、USE、SET GLOBAL 和 SHOW PROCESSLIST 操作的访问权限;
  • 增加了使用SQL表达式从日志中提取慢查询的功能;
  • 实现了快速恢复已删除表的机制,可以恢复误删除的数据;
  • 统一了记录日志的格式;
  • 增加了对悲观锁模式的支持,使得事务处理更加类似于MySQL;
  • 添加了对与 MySQL 8.0 兼容的窗口函数(窗口函数或分析函数)的支持。 窗口函数允许您使用其他行对每个查询行执行计算。 与将一组行折叠为一行的聚合函数不同,窗口函数根据“窗口”的内容进行聚合,其中包括结果集中的一行或多行。 已实现的窗口函数:
    NTILE、LEAD、LAG、PERCENT_RANK、NTH_VALUE、CUME_DIST、FIRST_VALUE、LAST_VALUE、RANK、DENSE_RANK 和 ROW_NUMBER;

  • 添加了对视图(VIEW)的实验性支持;
  • 分区系统得到了改进,添加了根据一系列值或散列将数据分配到各个部分的能力;
  • 增加了开发插件的框架,例如已经准备好使用IP白名单或维护审计日志的插件;
  • 为“EXPLAIN ANALYZE”功能提供了实验支持,用于构建 SQL 查询的执行计划(SQL 计划管理);
  • 添加next_row_id命令获取下一行的ID;
  • 添加了新的内置函数 JSON_QUOTE、JSON_ARRAY_APPEND、JSON_MERGE_PRESERVE、BENCHMARK、COALESCE 和 NAME_CONST。

来源: opennet.ru

添加评论