PingCAP
  • PingCAP University
  • 文档
  • 案例
  • 社区
  • 博客
  • 关于
  • 问答
  • 联系我们
PingCAP
  • 文档
  • 案例
  • 社区
  • 博客
  • 关于
  • 问答
  • 联系我们
  • PingCAP University

Contact

  • Wechat qrCode

    微信扫一扫
    微信ID:pingcap2015

English
文档
v3.0 (stable)This doc does not exist in stable devThis doc does not exist in dev v2.1
  • 关于 TiDB
    • TiDB 简介
    • Benchmark 测试
      • 如何用 Sysbench 测试 TiDB
      • Sysbench 性能对比 - v2.1 对比 v2.0
      • TPC-H 50G 性能对比 - v2.1 对比 v2.0
  • 主要概念
    • 整体架构
    • 核心特性
      • 水平扩展
      • 高可用
  • 操作指南
    • 快速上手
      • 创建集群
        • 使用 Docker Compose
      • SQL 基本操作
      • 读取历史数据
      • TiDB Binlog 教程
      • TiDB Data Migration 教程
      • TiDB Lightning 教程
      • TiSpark 教程
    • 部署
      • 软硬件环境需求
      • 集群部署方式
        • 使用 Ansible 部署(推荐)
        • 使用 Ansible 离线部署
        • 使用 Docker 部署
      • 跨地域冗余
        • 跨数据中心部署方案
        • 配置集群拓扑
      • 使用 Ansible 部署 DM 集群
    • 配置
      • 时区
      • 内存控制
    • 安全
      • 安全传输层协议 (TLS)
        • 为 MySQL 客户端开启 TLS
        • 为 TiDB 组件间开启 TLS
      • 生成自签名证书
    • 监控
      • 概述
      • 监控 TiDB 集群
    • 迁移
      • 概述
      • 从 MySQL 迁移
        • 全量迁移
        • 增量复制
      • 从 Amazon Aurora MySQL 迁移数据
      • 从 CSV 迁移
    • 运维
      • Ansible 常见运维操作
      • 备份与恢复
      • 定位慢查询
    • 扩容缩容
      • 使用 Ansible 扩容缩容
    • 升级
      • 升级至 TiDB 2.1
    • 故障诊断
      • 集群配置诊断
      • TiDB Lightning 故障诊断
  • 参考手册
    • SQL
      • 与 MySQL 兼容性对比
      • SQL 语言结构
        • 字面值
        • Schema 对象名
        • 关键字和保留字
        • 用户自定义变量
        • 表达式语法
        • 注释语法
      • 数据类型
        • 概述
        • 默认值
        • 数值类型
          • `BIT`
          • `BOOL|BOOLEAN`
          • `TINYINT`
          • `SMALLINT`
          • `MEDIUMINT`
          • `INT|INTEGER`
          • `BIGINT`
          • `DECIMAL`
          • `FLOAT`
          • `DOUBLE`
        • 日期和时间类型
          • `DATE`
          • `DATETIME`
          • `TIMESTAMP`
          • `TIME`
          • `YEAR`
        • 字符串类型
          • `CHAR`
          • `VARCHAR`
          • `TEXT`
          • `LONGTEXT`
          • `BINARY`
          • `VARBINARY`
          • `TINYBLOB`
          • `BLOB`
          • `MEDIUMBLOB`
          • `LONGBLOB`
          • `ENUM`
          • `SET`
        • JSON Type
      • 函数与操作符
        • 函数与操作符概述
        • 表达式求值的类型转换
        • 操作符
        • 控制流程函数
        • 字符串函数
        • 数值函数与操作符
        • 日期和时间函数
        • 位函数和操作符
        • Cast 函数和操作符
        • 加密和压缩函数
        • 信息函数
        • JSON 函数
        • GROUP BY 聚合函数
        • 其它函数
        • 精度数学
      • SQL 语句
        • `ADD COLUMN`
        • `ADD INDEX`
        • `ADMIN`
        • `ALTER DATABASE`
        • `ALTER TABLE`
        • `ALTER USER`
        • `ANALYZE TABLE`
        • `BEGIN`
        • `COMMIT`
        • `CREATE DATABASE`
        • `CREATE INDEX`
        • `CREATE TABLE LIKE`
        • `CREATE TABLE`
        • `CREATE USER`
        • `DEALLOCATE`
        • `DELETE`
        • `DESC`
        • `DESCRIBE`
        • `DO`
        • `DROP COLUMN`
        • `DROP DATABASE`
        • `DROP INDEX`
        • `DROP TABLE`
        • `DROP USER`
        • `EXECUTE`
        • `EXPLAIN ANALYZE`
        • `EXPLAIN`
        • `FLUSH PRIVILEGES`
        • `FLUSH STATUS`
        • `FLUSH TABLES`
        • `GRANT <privileges>`
        • `INSERT`
        • `KILL [TIDB]`
        • `LOAD DATA`
        • `MODIFY COLUMN`
        • `PREPARE`
        • `RENAME INDEX`
        • `RENAME TABLE`
        • `REPLACE`
        • `REVOKE <privileges>`
        • `ROLLBACK`
        • `SELECT`
        • `SET [NAMES|CHARACTER SET]`
        • `SET PASSWORD`
        • `SET TRANSACTION`
        • `SET [GLOBAL|SESSION] <variable>`
        • `SHOW CHARACTER SET`
        • `SHOW COLLATION`
        • `SHOW [FULL] COLUMNS FROM`
        • `SHOW CREATE TABLE`
        • `SHOW DATABASES`
        • `SHOW ENGINES`
        • `SHOW ERRORS`
        • `SHOW [FULL] FIELDS FROM`
        • `SHOW GRANTS`
        • `SHOW INDEXES [FROM|IN]`
        • `SHOW INDEX [FROM|IN]`
        • `SHOW KEYS [FROM|IN]`
        • `SHOW PRIVILEGES`
        • `SHOW [FULL] PROCESSSLIST`
        • `SHOW SCHEMAS`
        • `SHOW [FULL] TABLES`
        • `SHOW TABLE REGIONS`
        • `SHOW TABLE STATUS`
        • `SHOW [GLOBAL|SESSION] VARIABLES`
        • `SHOW WARNINGS`
        • `SPLIT REGION`
        • `START TRANSACTION`
        • `TRACE`
        • `TRUNCATE`
        • `UPDATE`
        • `USE`
      • 约束
      • 生成列
      • 字符集
    • 配置
      • tidb-server
        • MySQL 系统变量
        • TiDB 特定系统变量
        • 配置参数
        • 配置文件描述
      • pd-server
        • 配置参数
      • tikv-server
        • 配置参数
    • 安全
      • 与 MySQL 的安全特性差异
      • TiDB 数据库权限管理
      • TiDB 用户账户管理
    • 事务
      • 事务语句
      • 事务模型
      • 隔离级别
    • 系统数据库
      • `mysql`
      • `information_schema`
    • 错误码
    • 支持的连接器和 API
    • 垃圾回收 (GC)
    • 性能调优
      • SQL 优化流程
      • 理解 TiDB 执行计划
      • 统计信息概述
      • Optimizer Hints
      • TiKV 调优
      • TiDB 最佳实践
    • 监控指标
      • Overview 面板
      • TiDB 面板
      • PD 面板
      • TiKV 面板
    • 报警规则
    • 最佳实践
      • HAProxy 最佳实践
      • Java 应用开发最佳实践
      • Grafana 监控最佳实践
      • PD 调度策略最佳实践
      • 海量 Region 集群调优最佳实践
      • 乐观锁事务最佳实践
    • TiSpark 使用指南
    • TiDB Binlog
      • 概述
      • 部署使用
      • 运维管理
      • 版本升级
      • 监控告警
      • 增量恢复
      • Kafka 自定义开发
      • 故障诊断
        • 故障诊断
        • 常见错误修复
      • FAQ
    • 周边工具
      • Mydumper
      • Loader
      • Syncer
      • Data Migration
        • 概述
          • DM 架构
          • 同步功能介绍
          • 使用限制
          • DM-worker 简介
          • DM Relay Log
        • 核心特性
          • Table Routing
          • Black & White Lists
          • Binlog Event Filter
          • 同步延迟监控
          • Shard Support
            • 简介
            • 使用限制
            • 手动处理 Sharding DDL Lock
        • 使用场景
          • 简单的从库同步场景
          • 分库分表合并场景
          • 分表合并数据迁移最佳实践
          • DM-worker 在上游 MySQL 主从间切换
        • 部署使用
        • 配置
          • 概述
          • DM-master 配置
          • DM-worker 配置
          • 任务配置
        • DM 集群管理
          • 集群操作
          • 集群升级
        • DM 同步任务管理
          • 管理数据同步任务
          • 任务前置检查
          • 任务状态查询
          • 跳过或替代执行异常的 SQL 语句
        • 监控 DM 集群
        • 从与 MySQL 兼容的数据库迁移数据
          • 从 Amazon Aurora MySQL 迁移数据
        • DM Portal
        • DM 故障诊断
          • 故障诊断
          • 错误含义
          • 常见错误修复
        • DM FAQ
        • 版本发布历史
          • v1.0
            • 1.0.2
            • 1.0.3
      • TiDB Lightning
        • 概述
        • 部署执行
        • 断点续传
        • 表库过滤
        • CSV 支持
        • 监控告警
        • 故障诊断
        • FAQ
      • sync-diff-inspector
      • PD Control
      • PD Recover
      • TiKV Control
      • TiDB Controller
      • 工具下载
  • 常见问题 (FAQ)
    • TiDB FAQ
    • TiDB Lightning FAQ
    • 升级 FAQ
  • 技术支持
    • 支持渠道
    • 反馈问题
  • 贡献
    • 贡献代码
    • 改进文档
  • TiDB 路线图
  • 版本发布历史
    • v2.1
      • 2.1.18
      • 2.1.17
      • 2.1.16
      • 2.1.15
      • 2.1.14
      • 2.1.13
      • 2.1.12
      • 2.1.11
      • 2.1.10
      • 2.1.9
      • 2.1.8
      • 2.1.7
      • 2.1.6
      • 2.1.5
      • 2.1.4
      • 2.1.3
      • 2.1.2
      • 2.1.1
      • 2.1 GA
      • 2.1 RC5
      • 2.1 RC4
      • 2.1 RC3
      • 2.1 RC2
      • 2.1 RC1
      • 2.1 Beta
    • v2.0
      • 2.0.11
      • 2.0.10
      • 2.0.9
      • 2.0.8
      • 2.0.7
      • 2.0.6
      • 2.0.5
      • 2.0.4
      • 2.0.3
      • 2.0.2
      • 2.0.1
      • 2.0
      • 2.0 RC5
      • 2.0 RC4
      • 2.0 RC3
      • 2.0 RC1
      • 1.1 Beta
      • 1.1 Alpha
    • v1.0
      • 1.0
      • Pre-GA
      • RC4
      • RC3
      • RC2
      • RC1
  • 术语表

TiDB 2.0 Release Notes

2018 年 4 月 27 日,TiDB 发布 2.0 GA 版。相比 1.0 版本,该版本对 MySQL 兼容性、系统稳定性、优化器和执行器做了很多改进。

TiDB

  • SQL 优化器
    • 精简统计信息数据结构,减小内存占用
    • 加快进程启动时加载统计信息速度
    • 支持统计信息动态更新 [experimental]
    • 优化代价模型,对代价估算更精准
    • 使用 Count-Min Sketch 更精确地估算点查的代价
    • 支持分析更复杂的条件,尽可能充分的使用索引
    • 支持通过 STRAIGHT_JOIN 语法手动指定 Join 顺序
    • GROUP BY子句为空时使用 Stream Aggregation 算子,提升性能
    • 支持使用索引计算 Max/Min 函数
    • 优化关联子查询处理算法,支持将更多类型的关联子查询解关联并转化成 Left Outer Join
    • 扩大 IndexLookupJoin 的使用范围,索引前缀匹配的场景也可以使用该算法
  • SQL 执行引擎
    • 使用 Chunk 结构重构所有执行器算子,提升分析型语句执行性能,减少内存占用,显著提升 TPC-H 结果
    • 支持 Streaming Aggregation 算子下推
    • 优化 Insert Into Ignore 语句性能,提升 10 倍以上
    • 优化 Insert On Duplicate Key Update 语句性能,提升 10 倍以上
    • 下推更多的数据类型和函数到 TiKV 计算
    • 优化 Load Data 性能,提升 10 倍以上
    • 支持对物理算子内存使用进行统计,通过配置文件以及系统变量指定超过阈值后的处理行为
    • 支持限制单条 SQL 语句使用内存的大小,减少程序 OOM 风险
    • 支持在 CRUD 操作中使用隐式的行 ID
    • 提升点查性能
  • Server
    • 支持 Proxy Protocol
    • 添加大量监控项, 优化日志
    • 支持配置文件的合法性检测
    • 支持 HTTP API 获取 TiDB 参数信息
    • 使用 Batch 方式 Resolve Lock,提升垃圾回收速度
    • 支持多线程垃圾回收
    • 支持 TLS
  • 兼容性
    • 支持更多 MySQL 语法
    • 支持配置文件修改 lower_case_table_names 系统变量,用于支持 OGG 数据同步工具
    • 提升对 Navicat 的兼容性
    • 在 Information_Schema 中支持显示建表时间
    • 修复部分函数/表达式返回类型和 MySQL 不同的问题
    • 提升对 JDBC 兼容性
    • 支持更多的 SQL_MODE
  • DDL
    • 优化 Add Index 的执行速度,部分场景下速度大幅度提升
    • Add Index 操作变更为低优先级,降低对线上业务影响
    • Admin Show DDL Jobs 输出更详细的 DDL 任务状态信息
    • 支持 Admin Show DDL Job Queries JobID 查询当前正在运行的 DDL 任务的原始语句
    • 支持 Admin Recover Index 命令,用于灾难恢复情况下修复索引数据
    • 支持通过 Alter 语句修改 Table Options

PD

  • 增加 Region Merge 支持,合并数据删除后产生的空 Region [experimental]
  • 增加 Raft Learner 支持 [experimental]
  • 调度器优化
    • 调度器适应不同的 Region size
    • 提升 TiKV 宕机时数据恢复的优先级和恢复速度
    • 提升下线 TiKV 节点搬迁数据的速度
    • 优化 TiKV 节点空间不足时的调度策略,尽可能防止空间不足时磁盘被写满
    • 提升 balance-leader scheduler 的调度效率
    • 减少 balance-region scheduler 调度开销
    • 优化 hot-region scheduler 的执行效率
  • 运维接口及配置
    • 增加 TLS 支持
    • 支持设置 PD leader 优先级
    • 支持基于 label 配置属性
    • 支持配置特定 label 的节点不调度 Region leader
    • 支持手动 Split Region,可用于处理单 Region 热点的问题
    • 支持打散指定 Region,用于某些情况下手动调整热点 Region 分布
    • 增加配置参数检查规则,完善配置项的合法性较验
  • 调试接口
    • 增加 Drop Region 调试接口
    • 增加枚举各个 PD health 状态的接口
  • 统计相关
    • 添加异常 Region 的统计
    • 添加 Region 隔离级别的统计
    • 添加调度相关 metrics
  • 性能优化
    • PD leader 尽量与 etcd leader 保持同步,提升写入性能
    • 优化 Region heartbeat 性能,现可支持超过 100 万 Region

TiKV

  • 功能
    • 保护关键配置,防止错误修改
    • 支持 Region Merge [experimental]
    • 添加 Raw DeleteRange API
    • 添加 GetMetric API
    • 添加 Raw Batch Put,Raw Batch Get,Raw Batch Delete 和 Raw Batch Scan
    • 给 Raw KV API 增加 Column Family 参数,能对特定 Column Family 进行操作
    • Coprocessor 支持 streaming 模式,支持 streaming 聚合
    • 支持配置 Coprocessor 请求的超时时间
    • 心跳包携带时间戳
    • 支持在线修改 RocksDB 的一些参数,包括 block-cache-size 大小等
    • 支持配置 Coprocessor 遇到某些错误时的行为
    • 支持以导数据模式启动,减少导数据过程中的写放大
    • 支持手动对 region 进行对半 split
    • 完善数据修复工具 tikv-ctl
    • Coprocessor 返回更多的统计信息,以便指导 TiDB 的行为
    • 支持 ImportSST API,可以用于 SST 文件导入 [experimental]
    • 新增 TiKV Importer 二进制,与 TiDB Lightning 集成用于快速导入数据 [experimental]
  • 性能
    • 使用 ReadPool 优化读性能,raw_get/get/batch_get 提升 30%
    • 提升 metrics 的性能
    • Raft snapshot 处理完之后立即通知 PD,加快调度速度
    • 解决 RocksDB 刷盘导致性能抖动问题
    • 提升在数据删除之后的空间回收
    • 加速启动过程中的垃圾清理过程
    • 使用 DeleteFilesInRanges 减少副本迁移时 I/O 开销
  • 稳定性
    • 解决在 PD leader 发送切换的情况下 gRPC call 不返回问题
    • 解决由于 snapshot 导致下线节点慢的问题
    • 限制搬移副本临时占用的空间大小
    • 如果有 Region 长时间没有 Leader,进行上报
    • 根据 compaction 事件及时更新统计的 Region size
    • 限制单次 scan lock 请求的扫描的数据量,防止超时
    • 限制接收 snapshot 过程中的内存占用,防止 OOM
    • 提升 CI test 的速度
    • 解决由于 snapshot 太多导致的 OOM 问题
    • 配置 gRPC 的 keepalive 参数
    • 修复 Region 增多容易 OOM 的问题

TiSpark

TiSpark 使用独立的版本号,现为 1.0 GA。TiSpark 1.0 版本组件提供了针对 TiDB 上的数据使用 Apache Spark 进行分布式计算的能力。

  • 提供了针对 TiKV 读取的 gRPC 通信框架
  • 提供了对 TiKV 组件数据的和通信协议部分的编码解码
  • 提供了计算下推功能,包含:
    • 聚合下推
    • 谓词下推
    • TopN 下推
    • Limit 下推
  • 提供了索引相关的支持
    • 谓词转化聚簇索引范围
    • 谓词转化次级索引
    • Index Only 查询优化
    • 运行时索引退化扫表优化
  • 提供了基于代价的优化
    • 统计信息支持
    • 索引选择
    • 广播表代价估算
  • 多种 Spark Interface 的支持
    • Spark Shell 支持
    • ThriftServer/JDBC 支持
    • Spark-SQL 交互支持
    • PySpark Shell 支持
    • SparkR 支持
"TiDB 2.0 release notes" 更新于 Jul 11 2019: fix lint issues (948ced1)
修改本文 反馈文档问题

本页导航

产品

  • TiDB
  • TiSpark
  • TiDB 路线图

文档

  • 快速入门
  • 最佳实践
  • 常见问题解答
  • TiDB 周边工具
  • 版本发布说明

资源

  • 博客
  • GitHub
  • 知乎专栏
  • PingCAP University
  • 联合解决方案
  • Ask TUG

公司

  • 关于我们
  • 招贤纳士
  • 新闻报道

联系我们

  • Twitter
  • LinkedIn
  • Reddit
  • Google Group
  • Stack Overflow
  • 微信公众号
    Wechat qrCode

    微信扫一扫
    微信ID:pingcap2015

© 2019 北京平凯星辰科技发展有限公司

English