作者: ShawnYan 原文来源:https://tidb.net/blog/5b2c5ca2
“
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
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 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
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
TiDB v1.0.7
TiKV
TiDB v1.0.0
协处理器现在支持更多下推功能
支持下推采样操作
支持手动触发数据压缩,快速收集空间
提高性能和稳定性
添加 Debug API 进行调试
TiDB v1.0.1
支持写字节的流控制。
减少 Raft 分配。
将协处理器堆栈大小增加到 10MB。
从协处理器中删除无用的日志。
TiDB v1.0.2
TiDB v1.0.5
TiDB v1.0.7
支持 Table Scan
tikv-ctl 支持远程模式
TiDB v1.0.8
TiDB v1.0 极简版
极简形态启动 TiDB 数据库,准备一个 PD,一个 TiKV 和一个 TiDB Server。
连接 4000 端口到 TiDB Server,并查看一些基础信息。
[root@shawnyan ~]# mysql -uroot -P4000 -h127.1 --default-character-set=utf8 --prompt='tidb> '
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.1-TiDB-v1.0.8-1-gaacba4a MySQL Community Server (Apache License 2.0)
Copyright (c) 2000, 2024, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
tidb> \s
--------------
mysql Ver 8.4.0 for Linux on x86_64 (MySQL Community Server - GPL)
Connection id: 5
Current database:
Current user: root@127.0.0.1
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.7.1-TiDB-v1.0.8-1-gaacba4a MySQL Community Server (Apache License 2.0)
Protocol version: 10
Connection: 127.1 via TCP/IP
Server characterset: latin1
Db characterset: latin1
Client characterset: utf8
Conn. characterset: utf8
TCP port: 4000
Binary data as: Hexadecimal
--------------
tidb> select version();
+------------------------------+
| version() |
+------------------------------+
| 5.7.1-TiDB-v1.0.8-1-gaacba4a |
+------------------------------+
1 row in set (0.00 sec)
tidb> select tidb_version()\G
*************************** 1. row ***************************
tidb_version(): Release Version: v1.0.8-1-gaacba4a
Git Commit Hash: aacba4a427f6c1dd64cd581e1f888e00aa64e948
Git Branch: release-1.0
UTC Build Time: 2018-02-11 12:21:59
1 row in set (0.01 sec)
tidb> select * from mysql.tidb;
+-----------------------+-------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
| VARIABLE_NAME | VARIABLE_VALUE | COMMENT |
+-----------------------+-------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
| bootstrapped | True | Bootstrap flag. Do not delete. |
| tidb_server_version | 15 | Bootstrap version. Do not delete. |
| tikv_gc_leader_uuid | 63d1e883d100006 | Current GC worker leader UUID. (DO NOT EDIT) |
| tikv_gc_leader_desc | host:shawnyan, pid:22873, start at 2024-05-05 15:22:34.205171361 +0800 CST m=+1.715160561 | Host name and pid of current GC leader. (DO NOT EDIT) |
| tikv_gc_leader_lease | 20240505-15:36:34 +0800 CST | Current GC worker leader lease. (DO NOT EDIT) |
| tikv_gc_run_interval | 10m0s | GC run interval, at least 10m, in Go format. |
| tikv_gc_life_time | 10m0s | All versions within life time will not be collected by GC, at least 10m, in Go format. |
| tikv_gc_last_run_time | 20240505-15:32:34 +0800 CST | The time when last GC starts. (DO NOT EDIT) |
| tikv_gc_safe_point | 20240505-15:22:34 +0800 CST | All versions after safe point can be accessed. (DO NOT EDIT) |
| tikv_gc_concurrency | 1 | How many go routines used to do GC parallel, [1, 128], default 1 |
+-----------------------+-------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------+
10 rows in set (0.01 sec)
tidb> select count(*) from mysql.GLOBAL_VARIABLES;
+----------+
| count(*) |
+----------+
| 498 |
+----------+
1 row in set (0.00 sec)
tidb> select * from mysql.GLOBAL_VARIABLES where VARIABLE_NAME like 'tidb%';
+------------------------------------+----------------+
| VARIABLE_NAME | VARIABLE_VALUE |
+------------------------------------+----------------+
| tidb_max_row_count_for_inlj | 128 |
| tidb_index_lookup_size | 20000 |
| tidb_distsql_scan_concurrency | 10 |
| tidb_index_join_batch_size | 25000 |
| tidb_index_serial_scan_concurrency | 1 |
| tidb_skip_utf8_check | 0 |
| tidb_index_lookup_concurrency | 4 |
+------------------------------------+----------------+
7 rows in set (0.01 sec)
复制代码
查看 PD 中的配置:
[root@shawnyan bin]# echo "config show" | ./pd-ctl
{
"max-snapshot-count": 3,
"max-store-down-time": "1h0m0s",
"leader-schedule-limit": 64,
"region-schedule-limit": 12,
"replica-schedule-limit": 16,
"schedulers-v2": [
{
"type": "balance-region",
"args": null
},
{
"type": "balance-leader",
"args": null
},
{
"type": "hot-region",
"args": null
}
]
}
复制代码
活动预告
咱们有一些社区小伙伴还在用 TiDB 比较老的版本,
小伙伴们反馈说他们其实也想要升级,太旧的版本周边组件不太完善,
遇到问题也很难获得支持(因为问题小伙伴们很难有环境帮忙复现),
但就比较担心升级时遇到问题没有人可以帮忙。
我们就在想是不是可以在社区发起一个“TiDB 升级互助活动”,
让社区里需要升级的小伙伴能更加安心和稳妥地升级~
跟大家预告即将开启的一个重磅活动呀:
TiDB 社区升级互助活动!
“
预计活动报名时间:2024 年 5 月 15 号 - 2024 年 6 月 15 号
原厂技术老师 & 社区导师天团支持时间:2024 年 5 月 15 号 - 2024 年 7 月 15 号
本期考古活动告一段落,咱们下期再见!
-- END –
评论