星辰考古:TiDB v1.0 安装实录
1.0 版本只是个开始,是新的起点,愿我们一路相扶,不负远途。
前言
TiDB 是 PingCAP 公司自主设计、研发的开源分布式关系型数据库。
近日,TiDB v8.0.0 DMR 发布,详细发版说明戳这里:
https://docs.pingcap.com/zh/tidb/v8.0/release-8.0.0
之前的文章提到过,我们从 v1.0 开始接触 TiDB,那时还没有好用的工具,
也没有社区论坛,遇到问题基本靠猜,或者去 GitHub 提个 Issue,
远不及现在方便、好用、高效。
那时安装集群全靠手工,先进的用 Ansible playbook,一周能装起来就很快了,
当然,现在好多国产数据库仍旧如此,长期处于初级阶段。
本文主要讲解如何安装 TiDB v1.0,找寻一下“初恋”的记忆。
TiDB v1.0 Release
TiDB v1.0 共发布了 9 个版本,从 v1.0.0 到 v1.0.8,先来回忆下当年的发版说明。
(由于内容较多,移除了错误修复的部分)
时间线
- 2017 年 10 月 16 日,TiDB 1.0 正式发布!
- 2017 年 11 月 01 日,TiDB 1.0.1 发布
- 2017 年 11 月 13 日,TiDB 1.0.2 发布
- 2017 年 11 月 28 日,TiDB 1.0.3 发布
- 2017 年 12 月 11 日,TiDB 1.0.4 发布
- 2017 年 12 月 26 日,TiDB 1.0.5 发布
- 2018 年 01 月 08 日,TiDB 1.0.6 发布
- 2018 年 01 月 22 日,TiDB 1.0.7 发布
- 2018 年 02 月 11 日,TiDB 1.0.8 发布
TiDB Server
TiDB v1.0.0
- SQL查询优化器:
- 调整成本模型
- 分析下推
- 函数签名下推
- 优化内部数据格式,减少中间数据大小
- 增强 MySQL 兼容性
- 支持
NO_SQL_CACHE
语法并限制存储引擎中的缓存使用 - 重构 Hash Aggregator 运算符以减少内存使用
- 支持 Stream Aggregator 算子
TiDB v1.0.1
- 支持取消 DDL Job。
- 优化 IN 表达。
- 支持将慢查询记录到单独的日志文件中。
TiDB v1.0.2
- 优化索引点查询的成本估算
- 支持
Alter Table Add Column (ColumnDef ColumnPosition)
语法 - where 优化条件矛盾的查询
- 优化
Add Index
操作纠正进度,减少重复操作 - 优化
Index Look Join
算子,加快小数据量的查询速度
TiDB v1.0.3
- 优化事务冲突场景下的性能
TokenLimit
在配置文件中添加选项- 在慢查询日志中输出默认数据库
- 从查询持续时间指标中删除 DDL 语句
- 优化查询成本估算
- 支持将 Float 类型的表达式下推到 TiKV
TiDB v1.0.4
- 加快启动时统计数据的加载速度
tidb-server
show variables
提高语句的性能Alter/Drop User
加速声明的有效性
TiDB v1.0.5
- 在语句中添加当前 Auto_Increment ID 的最大值
Show Create Table
。 - 支持将慢查询输出到单独的文件中。
- TimeZone 创建新会话时从 TiKV 加载变量。
- 支持模式状态检查,使
Show Create Table
和Analyze
语句仅处理公共表/索引。
TiDB v1.0.6
- 支持
Alter Table Auto_Increment
语法 - 支持扩展语法对隐式行ID进行分片,避免单表写入热点
- 支持 GROUP_CONCAT 函数中的
SEPARATOR
语法
TiDB v1.0.7
- 优化
FIELD_LIST
命令 - 避免将只读语句添加到历史记录中
- 添加
session
变量控制日志查询 - 为http状态服务器添加架构信息API
- 更新 DDL 中为 false 时 RunWorker 的行为
- 提高统计中测试结果的稳定性
- 支持
CREATE TABLE
语句PACK_KEYS
语法 - row_id 为空下推模式添加列以优化性能
TiDB v1.0.8
- 优化
InsertIntoIgnore
语句的性能 - 为事务内的 DML 语句数量添加限制(可配置,默认值为 stmt-count-limit = 5000)
- 并发运行GC以加速GC进程
- 为
CREATE INDEX
语句提供LOCK
语法支持
PD
TiDB v1.0.0
- 支持基于读流的平衡
- 支持设置存储重量和基于重量的平衡
TiDB v1.0.2
- 提高异常情况下调度的稳定性
TiDB v1.0.3
- 支持使用 API 添加更多类型的调度器
TiDB v1.0.7
- 增加日志
TiKV
TiDB v1.0.0
- 协处理器现在支持更多下推功能
- 支持下推采样操作
- 支持手动触发数据压缩,快速收集空间
- 提高性能和稳定性
- 添加 Debug API 进行调试
TiDB v1.0.1
- 支持写字节的流控制。
- 减少 Raft 分配。
- 将协处理器堆栈大小增加到 10MB。
- 从协处理器中删除无用的日志。
TiDB v1.0.2
- 支持分表,确保一个 Region 不包含多个表的数据
- 限制密钥长度不超过 4 KB
- 更准确的读流量统计
- 对协处理器堆栈实施深度保护
TiDB v1.0.5
- 支持
dynamic-level-bytes
参数改善空间收集情况。
TiDB v1.0.7
- 支持
Table Scan
- tikv-ctl 支持远程模式
TiDB v1.0.8
- 用
DeleteFilesInRanges
清除陈旧数据,提高 TiKV 启动速度 - 强制同步接收到的 Snapshot 的元数据,保证其安全
TiDB v1.0 极简版
极简形态启动 TiDB 数据库,准备一个 PD,一个 TiKV 和一个 TiDB Server。
1 | ./pd-server |
连接 4000 端口到 TiDB Server,并查看一些基础信息。
1 | [root@shawnyan ~]# mysql -uroot -P4000 -h127.1 --default-character-set=utf8 --prompt='tidb> ' |
查看 PD 中的配置:
1 | [root@shawnyan bin]# echo "config show" | ./pd-ctl |
本期考古活动告一段落,咱们下期再见!
– END –
如果这篇文章为你带来了灵感或启发,就请帮忙点『赞』or『在看』or『转发』吧,感谢!(๑˃̵ᴗ˂̵)
- Title: 星辰考古:TiDB v1.0 安装实录
- Author: ShawnYan
- Created at: 2024-05-05 23:00:00
- Updated at: 2024-05-05 23:00:00
- Link: https://shawnyan.cn/2024/tidb/tidb-1-0-release/
- License: This work is licensed under CC BY-NC-SA 4.0.
if (hexo-config('comment.enable') == true && hexo-config('comment.system') != "") {
if (hexo-config('comment.system') == "waline") {
@require "./waline.styl"
} else if (hexo-config('comment.system') == "gitalk") {
@require "./gitalk.styl"
} else if (hexo-config('comment.system') == "twikoo") {
@require "./twikoo.styl"
}
}
.comments-container
display inline-block
margin-top $spacing-unit
width 100%
#comment-anchor
width 100%
height 10px
.comment-area-title
width 100%
margin 10px 0
font-size 1.38rem
color var(--default-text-color)
font-family 'Consolas', '宋体', sans-serif
font-weight bold
i
color var(--default-text-color)
+redefine-tablet()
margin 5px 0
font-size 1.2rem