Skip to content

Commit

Permalink
zh.md fix doc typo, /{a_d}*.md (pingcap#6587)
Browse files Browse the repository at this point in the history
  • Loading branch information
wph95 authored Jul 5, 2021
1 parent 69fce26 commit c3090bb
Show file tree
Hide file tree
Showing 23 changed files with 55 additions and 56 deletions.
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

### 翻译中文文档

TiDB 中文文档的日常更新特别活跃,相应地,[TiDB 英文文档](https://docs.pingcap.com/tidb/dev/) 也需要频繁更新。这一过程会涉及很多的**中译英**,即将 pingcap/docs-cn 仓库里已 merge 但尚未进行翻译处理的 Pull Request 翻译为英文,并提交 Pull Request 至 [pingcap/docs 仓库](https://github.com/pingcap/docs) 中。**具体的认领方式**如下。
TiDB 中文文档的日常更新特别活跃,相应地,[TiDB 英文文档](https://docs.pingcap.com/tidb/dev/)也需要频繁更新。这一过程会涉及很多的**中译英**,即将 pingcap/docs-cn 仓库里已 merge 但尚未进行翻译处理的 Pull Request 翻译为英文,并提交 Pull Request 至 [pingcap/docs 仓库](https://github.com/pingcap/docs)中。**具体的认领方式**如下。

> **注意:**
>
Expand Down
2 changes: 1 addition & 1 deletion _index.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ aliases: ['/docs-cn/dev/']

# TiDB 简介

[TiDB](https://github.com/pingcap/tidb)[PingCAP](https://pingcap.com/about-cn/) 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等重要特性。目标是为用户提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景。
[TiDB](https://github.com/pingcap/tidb)[PingCAP](https://pingcap.com/about-cn/) 公司自主设计、研发的开源分布式关系型数据库,是一款同时支持在线事务处理与在线分析处理 (Hybrid Transactional and Analytical Processing, HTAP) 的融合型分布式数据库产品,具备水平扩容或者缩容、金融级高可用、实时 HTAP、云原生的分布式数据库、兼容 MySQL 5.7 协议和 MySQL 生态等重要特性。目标是为用户提供一站式 OLTP (Online Transactional Processing)、OLAP (Online Analytical Processing)、HTAP 解决方案。TiDB 适合高可用、强一致要求较高、数据规模较大等各种应用场景。

<NavColumns>
<NavColumn>
Expand Down
4 changes: 2 additions & 2 deletions alert-rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -696,7 +696,7 @@ aliases: ['/docs-cn/dev/alert-rules/','/docs-cn/dev/reference/alert-rules/']

* 处理方法:

Coprocessor 错误的主要原因分为lock”、“outdated”和“full”等。“outdated表示请求超时,很可能是由于排队时间过久,或者单个请求的耗时比较长。full表示 Coprocessor 的请求队列已经满了,可能是正在执行的请求比较耗时,导致新来的请求都在排队。耗时比较长的查询需要查看下对应的执行计划是否正确。
Coprocessor 错误的主要原因分为 "lock"、"outdated" 和 "full" 等。"outdated" 表示请求超时,很可能是由于排队时间过久,或者单个请求的耗时比较长。"full" 表示 Coprocessor 的请求队列已经满了,可能是正在执行的请求比较耗时,导致新来的请求都在排队。耗时比较长的查询需要查看下对应的执行计划是否正确。

#### `TiKV_coprocessor_request_lock_error`

Expand All @@ -710,7 +710,7 @@ aliases: ['/docs-cn/dev/alert-rules/','/docs-cn/dev/reference/alert-rules/']

* 处理方法:

Coprocessor 错误的主要原因分为lock”、“outdated”、“full”等。“lock表示读到的数据正在写入,需要等待一会再读(TiDB 内部会自动重试)。少量这种错误不用关注,如果有大量这种错误,需要查看写入和查询是否有冲突。
Coprocessor 错误的主要原因分为 "lock"、"outdated"、"full" 等。"lock" 表示读到的数据正在写入,需要等待一会再读(TiDB 内部会自动重试)。少量这种错误不用关注,如果有大量这种错误,需要查看写入和查询是否有冲突。

#### `TiKV_coprocessor_pending_request`

Expand Down
20 changes: 10 additions & 10 deletions analyze-slow-queries.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ summary: 学习如何定位和分析慢查询。
1. 从大量查询中定位出哪一类查询比较慢
2. 分析这类慢查询的原因

第一步可以通过 [慢日志](/identify-slow-queries.md)[statement-summary](/statement-summary-tables.md) 方便地定位,推荐直接使用 [TiDB Dashboard](/dashboard/dashboard-overview.md),它整合了这两个功能,且能方便直观地在浏览器中展示出来。本文聚焦第二步。
第一步可以通过[慢日志](/identify-slow-queries.md)[statement-summary](/statement-summary-tables.md) 方便地定位,推荐直接使用 [TiDB Dashboard](/dashboard/dashboard-overview.md),它整合了这两个功能,且能方便直观地在浏览器中展示出来。本文聚焦第二步。

首先将慢查询归因成两大类:

- 优化器问题:如选错索引,选错 Join 类型或顺序
- 系统性问题:将非优化器问题都归结于此类如:某个 TiKV 实例忙导致处理请求慢,Region 信息过期导致查询变慢
- 优化器问题:如选错索引,选错 Join 类型或顺序
- 系统性问题:将非优化器问题都归结于此类如:某个 TiKV 实例忙导致处理请求慢,Region 信息过期导致查询变慢

实际中,优化器问题可能造成系统性问题,如对于某类查询,优化器应使用索引,但却使用了全表扫这可能导致这类 SQL 消耗大量资源,造成某些 KV 实例 CPU 飚高等,表现上看就是一个系统性问题,但本质是优化器问题。
实际中,优化器问题可能造成系统性问题。例如对于某类查询,优化器应使用索引,但却使用了全表扫这可能导致这类 SQL 消耗大量资源,造成某些 KV 实例 CPU 飚高等问题。表现上看就是一个系统性问题,但本质是优化器问题。

分析优化器问题需要有判断执行计划是否合理的能力,而系统性问题的定位相对简单,因此面对慢查询推荐的分析过程如下:

Expand All @@ -41,7 +41,7 @@ summary: 学习如何定位和分析慢查询。
- 慢日志记录了 SQL 从解析到返回,几乎所有阶段的耗时,较为全面(在 TiDB Dashboard 中可以直观地查询和分析慢日志);
- `explain analyze` 可以拿到 SQL 实际执行中每个执行算子的耗时,对执行耗时有更细分的统计;

总的来说,利用慢日志和 `explain analyze` 可以比较准确地定位查询的瓶颈点,帮助你判断这条 SQL 慢在哪个模块TiDB/TiKV,慢在哪个阶段,下面会有一些例子。
总的来说,利用慢日志和 `explain analyze` 可以比较准确地定位查询的瓶颈点,帮助你判断这条 SQL 慢在哪个模块 (TiDB/TiKV) ,慢在哪个阶段,下面会有一些例子。

另外在 4.0.3 之后,慢日志中的 `Plan` 字段也会包含 SQL 的执行信息,也就是 `explain analyze` 的结果,这样一来 SQL 的所有耗时信息都可以在慢日志中找到。

Expand All @@ -57,7 +57,7 @@ summary: 学习如何定位和分析慢查询。

### TiKV 处理慢

如果是 TiKV 处理慢,可以很明显的通过 `explain analyze` 中看出来,如下面这个例子,可以看到 `StreamAgg_8``TableFullScan_15` 这两个 `tikv-task` (在 `task` 列可以看出这两个任务类型是 `cop[tikv]`) 花费了 `170ms`,而 TiDB 部分的算子耗时,减去这 `170ms` 后,耗时占比非常小,说明瓶颈在 TiKV。
如果是 TiKV 处理慢,可以很明显的通过 `explain analyze` 中看出来。例如下面这个例子,可以看到 `StreamAgg_8``TableFullScan_15` 这两个 `tikv-task` (在 `task` 列可以看出这两个任务类型是 `cop[tikv]`) 花费了 `170ms`,而 TiDB 部分的算子耗时,减去这 `170ms` 后,耗时占比非常小,说明瓶颈在 TiKV。

```sql
+----------------------------+---------+---------+-----------+---------------+------------------------------------------------------------------------------+---------------------------------+-----------+------+
Expand Down Expand Up @@ -131,7 +131,7 @@ TiDB 侧 Region 信息可能过期,此时 TiKV 可能返回 `regionMiss` 的

#### 子查询被提前执行

对于带有非关联子查询的语句,子查询部分可能被提前执行,如:`select * from t1 where a = (select max(a) from t2)``select max(a) from t2` 部分可能在优化阶段被提前执行这种查询用 `explain analyze` 看不到对应的耗时,如下:
对于带有非关联子查询的语句,子查询部分可能被提前执行,如:`select * from t1 where a = (select max(a) from t2)``select max(a) from t2` 部分可能在优化阶段被提前执行这种查询用 `explain analyze` 看不到对应的耗时,如下:

```sql
mysql> explain analyze select count(*) from t where a=(select max(t1.a) from t t1, t t2 where t1.a=t2.a);
Expand Down Expand Up @@ -242,11 +242,11 @@ mysql> explain select * from t t1, t t2 where t1.a>t2.a;
4. `select b from t where c=3`:多列索引没有前缀条件就用不上,所以会用 `IndexFullScan`
5. ...

上面举例了数据读入相关的算子,在 [理解 TiDB 执行计划](/explain-overview.md) 中描述了更多算子的情况
上面举例了数据读入相关的算子,在[理解 TiDB 执行计划](/explain-overview.md)中描述了更多算子的情况

另外阅读 [SQL 性能调优](/sql-tuning-overview.md) 整个小节能增加你对 TiDB 优化器的了解,帮助判断执行计划是否合理。
另外阅读 [SQL 性能调优](/sql-tuning-overview.md)整个小节能增加你对 TiDB 优化器的了解,帮助判断执行计划是否合理。

由于大多数优化器问题在 [SQL 性能调优](/sql-tuning-overview.md) 已经有解释,这里就直接列举出来跳转过去:
由于大多数优化器问题在 [SQL 性能调优](/sql-tuning-overview.md)已经有解释,这里就直接列举出来跳转过去:

1. [索引选择错误](/wrong-index-solution.md)
2. [Join 顺序错误](/join-reorder.md)
Expand Down
2 changes: 1 addition & 1 deletion as-of-timestamp.md
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ select * from t as of timestamp '2021-05-26 16:45:26';

> **注意:**
>
> 通过 `SELECT` 语句读取多个表时要保证 TIMESTAMP EXPRESSION 是一致的。 比如: `select * from t as of timestamp NOW() - INTERVAL 2 SECOND, c as of timestamp NOW() - INTERVAL 2 SECOND;`。此外,在 `SELECT` 语句中,你必须要指定相关数据表的 as of 信息,若不指定,`SELECT` 语句会默认读最新的数据。
> 通过 `SELECT` 语句读取多个表时要保证 TIMESTAMP EXPRESSION 是一致的。比如:`select * from t as of timestamp NOW() - INTERVAL 2 SECOND, c as of timestamp NOW() - INTERVAL 2 SECOND;`。此外,在 `SELECT` 语句中,你必须要指定相关数据表的 as of 信息,若不指定,`SELECT` 语句会默认读最新的数据。
### 通过 `START TRANSACTION READ ONLY AS OF TIMESTAMP` 读取历史数据

Expand Down
2 changes: 1 addition & 1 deletion auto-random.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ CREATE TABLE t (a bigint AUTO_RANDOM, b varchar(255), PRIMARY KEY (a))
此时再执行形如 `INSERT INTO t(b) values...``INSERT` 语句。

+ 隐式分配:如果该 `INSERT` 语句没有指定整型主键列(`a` 列)的值,或者指定为 `NULL`,TiDB 会为该列自动分配值。该值不保证自增,不保证连续,只保证唯一,避免了连续的行 ID 带来的热点问题。
+ 显式插入:如果该 `INSERT` 语句显式指定了整型主键列的值,和 `AUTO_INCREMENT` 属性类似,TiDB 会保存该值。注意,如果未在系统变量 `@@sql_mode` 中设置 `NO_AUTO_VALUE_ON_ZERO` 即使显式指定整型主键列的值为 `0`,TiDB 也会为该列自动分配值。
+ 显式插入:如果该 `INSERT` 语句显式指定了整型主键列的值,和 `AUTO_INCREMENT` 属性类似,TiDB 会保存该值。注意,如果未在系统变量 `@@sql_mode` 中设置 `NO_AUTO_VALUE_ON_ZERO`,即使显式指定整型主键列的值为 `0`,TiDB 也会为该列自动分配值。

> **注意:**
>
Expand Down
4 changes: 2 additions & 2 deletions backup-and-restore-using-dumpling-lightning.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,15 +31,15 @@ aliases: ['/docs-cn/dev/backup-and-restore-using-dumpling-lightning/','/docs-cn/

## 从 TiDB 备份数据

使用 `dumpling` 从 TiDB 备份数据的命令如下:
使用 `dumpling` 从 TiDB 备份数据的命令如下

{{< copyable "shell-regular" >}}

```bash
./bin/dumpling -h 127.0.0.1 -P 4000 -u root -t 32 -F 256m -T test.t1 -T test.t2 -o ./var/test
```

上述命令中,用 `-T test.t1 -T test.t2` 表明只导出 `test`.`t1``test`.`t2` 两张表。更多导出数据筛选方式可以参考[筛选导出的数据](/dumpling-overview.md#筛选导出的数据)
上述命令中,用 `-T test.t1 -T test.t2` 表明只导出 `test.t1``test.t2` 两张表。更多导出数据筛选方式可以参考[筛选导出的数据](/dumpling-overview.md#筛选导出的数据)

`-t 32` 表明使用 32 个线程来导出数据。`-F 256m` 是将实际的表切分成一定大小的 chunk,这里的 chunk 大小为 256MB。

Expand Down
4 changes: 2 additions & 2 deletions certificate-authentication.md
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ mysql -utest -h0.0.0.0 -P4000 --ssl-cert /path/to/client-cert.new.pem --ssl-key

用户证书信息可由 `require subject``require issuer``require san``require cipher` 来指定,用于检查 X.509 certificate attributes。

+ `require subject`:指定用户在连接时需要提供客户端证书的 `subject` 内容。指定该选项后,不需要再配置 `require ssl` 或 x509。配置内容对应[生成客户端密钥和证书](#生成客户端密钥和证书) 中的录入信息。
+ `require subject`:指定用户在连接时需要提供客户端证书的 `subject` 内容。指定该选项后,不需要再配置 `require ssl` 或 x509。配置内容对应[生成客户端密钥和证书](#生成客户端密钥和证书)中的录入信息。

可以执行以下命令来获取该项的信息:

Expand All @@ -270,7 +270,7 @@ mysql -utest -h0.0.0.0 -P4000 --ssl-cert /path/to/client-cert.new.pem --ssl-key
openssl x509 -noout -subject -in client-cert.pem | sed 's/.\{8\}//' | sed 's/, /\//g' | sed 's/ = /=/g' | sed 's/^/\//'
```
+ `require issuer`:指定签发用户证书的 CA 证书的 `subject` 内容。配置内容对应[生成 CA 密钥和证书](#生成-ca-密钥和证书) 中的录入信息。
+ `require issuer`:指定签发用户证书的 CA 证书的 `subject` 内容。配置内容对应[生成 CA 密钥和证书](#生成-ca-密钥和证书)中的录入信息。
可以执行以下命令来获取该项的信息:
Expand Down
4 changes: 2 additions & 2 deletions character-set-and-collation.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ aliases: ['/docs-cn/dev/character-set-and-collation/','/docs-cn/dev/reference/sq

字符集 (character set) 是符号与编码的集合。TiDB 中的默认字符集是 utf8mb4,与 MySQL 8.0 及更高版本中的默认字符集匹配。

排序规则 (collation) 是在字符集中比较字符以及字符排序顺序的规则。例如,在二进制排序规则中,比较“A”和“a”的结果是不一样的:
排序规则 (collation) 是在字符集中比较字符以及字符排序顺序的规则。例如,在二进制排序规则中,比较 `A``a` 的结果是不一样的:

{{< copyable "sql" >}}

Expand Down Expand Up @@ -314,7 +314,7 @@ SELECT _utf8mb4'string' COLLATE utf8mb4_general_ci;

规则如下:

* 规则 1:如果指定了 `CHARACTER SET charset_name``COLLATE collation_name`,则直接使用 `charset_name` 字符集和 `collation_name` 排序规则。
* 规则 1:如果指定了 `CHARACTER SET charset_name``COLLATE collation_name`,则直接使用 `charset_name` 字符集和 `collation_name` 排序规则。
* 规则 2:如果指定了 `CHARACTER SET charset_name` 且未指定 `COLLATE collation_name`,则使用 `charset_name` 字符集和 `charset_name` 对应的默认排序规则。
* 规则 3:如果 `CHARACTER SET charset_name``COLLATE collation_name` 都未指定,则使用 `character_set_connection``collation_connection` 系统变量给出的字符集和排序规则。

Expand Down
4 changes: 2 additions & 2 deletions command-line-flags-for-pd-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ PD 可以通过命令行参数或环境变量配置。

+ 动态加入 PD 集群。
+ 默认:""
+ 如果你想动态将一台 PD 加入集群,你可以使用 `--join="${advertise-client-urls}"` `advertise-client-url` 是当前集群里面任意 PD 的 `advertise-client-url`,你也可以使用多个 PD 的,需要用逗号分隔。
+ 如果你想动态将一台 PD 加入集群,你可以使用 `--join="${advertise-client-urls}"``advertise-client-url` 是当前集群里面任意 PD 的 `advertise-client-url`,你也可以使用多个 PD 的,需要用逗号分隔。

## `-L`

Expand All @@ -73,7 +73,7 @@ PD 可以通过命令行参数或环境变量配置。

+ 是否开启日志切割。
+ 默认:true
+ 当值为 true 时,按照 PD 配置文件中 `[log.file]` 信息执行。
+ 当值为 true 时按照 PD 配置文件中 `[log.file]` 信息执行。

## `--name`

Expand Down
8 changes: 4 additions & 4 deletions command-line-flags-for-tidb-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,9 +107,9 @@ aliases: ['/docs-cn/dev/command-line-flags-for-tidb-configuration/','/docs-cn/de

## `--proxy-protocol-networks`

+ 允许使用 [PROXY 协议](https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt) 连接 TiDB 的代理服务器地址列表。
+ 允许使用 [PROXY 协议](https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt)连接 TiDB 的代理服务器地址列表。
+ 默认:""
+ 通常情况下,通过反向代理使用 TiDB 时,TiDB 会将反向代理服务器的 IP 地址视为客户端 IP 地址。对于支持 [PROXY 协议](https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt) 的反向代理(如 HAProxy),开启 PROXY 协议后能让反向代理透传客户端真实的 IP 地址给 TiDB。
+ 通常情况下,通过反向代理使用 TiDB 时,TiDB 会将反向代理服务器的 IP 地址视为客户端 IP 地址。对于支持 [PROXY 协议](https://www.haproxy.org/download/1.8/doc/proxy-protocol.txt)的反向代理(如 HAProxy),开启 PROXY 协议后能让反向代理透传客户端真实的 IP 地址给 TiDB。
+ 配置该参数后,TiDB 将允许配置的源 IP 地址使用 PROXY 协议连接到 TiDB,且拒绝这些源 IP 地址使用非 PROXY 协议连接。若该参数为空,则任何源 IP 地址都不能使用 PROXY 协议连接到 TiDB。地址可以使用 IP 地址格式 (192.168.1.50) 或者 CIDR 格式 (192.168.1.0/24),并可用 `,` 分隔多个地址,或用 `*` 代表所有 IP 地址。

> **警告:**
Expand Down Expand Up @@ -148,7 +148,7 @@ aliases: ['/docs-cn/dev/command-line-flags-for-tidb-configuration/','/docs-cn/de

+ TiDB 服务状态监听端口
+ 默认:"10080"
+ 该端口用于展示 TiDB 内部数据,包括 [prometheus 统计](https://prometheus.io/) [pprof](https://golang.org/pkg/net/http/pprof/)
+ 该端口用于展示 TiDB 内部数据,包括 [prometheus 统计](https://prometheus.io/)[pprof](https://golang.org/pkg/net/http/pprof/)
+ Prometheus 统计可以通过 `http://host:status_port/metrics` 访问
+ pprof 数据可以通过 `http://host:status_port/debug/pprof` 访问

Expand Down Expand Up @@ -185,7 +185,7 @@ aliases: ['/docs-cn/dev/command-line-flags-for-tidb-configuration/','/docs-cn/de
+ 默认:""

## `--affinity-cpus`

+ 设置 TiDB server CPU 亲和性,以 "," 逗号分隔,例如 "1,2,3"
+ 默认:""

Expand Down
5 changes: 2 additions & 3 deletions command-line-flags-for-tikv-configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ TiKV 的命令行参数支持一些可读性好的单位转换。
## `--capacity`

+ TiKV 存储数据的容量
+ 默认:0 (无限)
+ 默认:0(无限)
+ PD 需要使用这个值来对整个集群做 balance 操作。(提示:你可以使用 10GB 来替代 10737418240,从而简化参数的传递)

## `--data-dir`
Expand All @@ -70,5 +70,4 @@ TiKV 的命令行参数支持一些可读性好的单位转换。

+ PD 地址列表。
+ 默认:""
+ TiKV 必须使用这个值连接 PD,才能正常工作。使用逗号来分隔多个 PD 地址,例如:
192.168.100.113:2379, 192.168.100.114:2379, 192.168.100.115:2379
+ TiKV 必须使用这个值连接 PD,才能正常工作。使用逗号来分隔多个 PD 地址,例如:192.168.100.113:2379, 192.168.100.114:2379, 192.168.100.115:2379
Loading

0 comments on commit c3090bb

Please sign in to comment.