blob: c7798a334870ed6a81896957c9eecdad45f6b8e2 [file] [log] [blame]
commit 1a5868daef2781e21297bc62b1018db0145f346a
Author: 孙念君 Sun Nianjun <kane.sun@outlook.com>
Date: Sat Apr 10 19:33:44 2021 +0800
Document fix (#10022)
* Document: fix a format issue
Co-authored-by: 孙念君 <sunnianjun@bizseer.com>
diff --git a/docs/document/content/features/sharding/concept/key-generator.cn.md b/docs/document/content/features/sharding/concept/key-generator.cn.md
index f6979d1ac2..db846952cf 100644
--- a/docs/document/content/features/sharding/concept/key-generator.cn.md
+++ b/docs/document/content/features/sharding/concept/key-generator.cn.md
@@ -51,7 +51,7 @@ Math.pow(2, 41) / (365 * 24 * 60 * 60 * 1000L);
- 序列号位(12bit
-该序列是用来在同一个毫秒内生成不同的 ID。如果在这个毫秒内生成的数量超过 4096 (212次幂),那么生成器会等待到下个毫秒继续生成。
+该序列是用来在同一个毫秒内生成不同的 ID。如果在这个毫秒内生成的数量超过 4096 (2 12 次幂),那么生成器会等待到下个毫秒继续生成。
雪花算法主键的详细结构见下图。
diff --git a/docs/document/content/features/sharding/concept/sharding.cn.md b/docs/document/content/features/sharding/concept/sharding.cn.md
index 55c89aef07..ca801ac8ff 100644
--- a/docs/document/content/features/sharding/concept/sharding.cn.md
+++ b/docs/document/content/features/sharding/concept/sharding.cn.md
@@ -19,7 +19,7 @@ SQL 中如果无分片字段,将执行全路由,性能较差。
- 标准分片算法
-对应 StandardShardingAlgorithm,用于处理使用单一键作为分片键的 `=``IN``BETWEEN AND``>``<``>=``<=`进行分片的场景。需要配合 StandardShardingStrategy 使用。
+对应 StandardShardingAlgorithm,用于处理使用单一键作为分片键的 `=``IN``BETWEEN AND``>``<``>=``<=` 进行分片的场景。需要配合 StandardShardingStrategy 使用。
- 复合分片算法
@@ -38,7 +38,7 @@ SQL 中如果无分片字段,将执行全路由,性能较差。
对应 StandardShardingStrategy。提供对 SQL 语句中的 `=`, `>`, `<`, `>=`, `<=`, `IN` `BETWEEN AND` 的分片操作支持。
StandardShardingStrategy 只支持单分片键,提供 PreciseShardingAlgorithm RangeShardingAlgorithm 两个分片算法。
PreciseShardingAlgorithm 是必选的,用于处理 `=` `IN` 的分片。
-RangeShardingAlgorithm 是可选的,用于处理 `BETWEEN AND`, `>`, `<`, `>=`, `<=`分片,如果不配置 RangeShardingAlgorithmSQL 中的 `BETWEEN AND` 将按照全库路由处理。
+RangeShardingAlgorithm 是可选的,用于处理 `BETWEEN AND`, `>`, `<`, `>=`, `<=` 分片,如果不配置 RangeShardingAlgorithmSQL 中的 `BETWEEN AND` 将按照全库路由处理。
- 复合分片策略
diff --git a/docs/document/content/features/sharding/principle/parse.cn.md b/docs/document/content/features/sharding/principle/parse.cn.md
index 22aff31846..ae68d641a9 100644
--- a/docs/document/content/features/sharding/principle/parse.cn.md
+++ b/docs/document/content/features/sharding/principle/parse.cn.md
@@ -10,7 +10,7 @@ weight = 1
解析过程分为词法解析和语法解析。
词法解析器用于将 SQL 拆解为不可再分的原子符号,称为 Token。并根据不同数据库方言所提供的字典,将其归类为关键字,表达式,字面量和操作符。
-再使用语法解析器将 词法解析器的输出 转换为抽象语法树。
+再使用语法解析器将词法解析器的输出转换为抽象语法树。
例如,以下 SQL
@@ -24,7 +24,7 @@ SELECT id, name FROM t_user WHERE status = 'ACTIVE' AND age > 18
为了便于理解,抽象语法树中的关键字的 Token 用绿色表示,变量的 Token 用红色表示,灰色表示需要进一步拆分。
-最后,通过`visitor`对抽象语法树遍历构造域模型,通过域模型(`SQLStatement`)去提炼分片所需的上下文,并标记有可能需要改写的位置。
+最后,通过 `visitor` 对抽象语法树遍历构造域模型,通过域模型(`SQLStatement`)去提炼分片所需的上下文,并标记有可能需要改写的位置。
供分片使用的解析上下文包含查询选择项(Select Items)、表信息(Table)、分片条件(Sharding Condition)、自增主键信息(Auto increment Primary Key)、排序信息(Order By)、分组信息(Group By)以及分页信息(LimitRownumTop)。
SQL 的一次解析过程是不可逆的,一个个 Token SQL 原本的顺序依次进行解析,性能很高。
考虑到各种数据库 SQL 方言的异同,在解析模块提供了各类数据库的 SQL 方言字典。
@@ -41,13 +41,14 @@ ShardingSphere SQL 解析器经历了 3 代产品的更新迭代。
第二代 SQL 解析器从 1.5.x 版本开始,ShardingSphere 采用完全自研的 SQL 解析引擎。
由于目的不同,ShardingSphere 并不需要将 SQL 转为一颗完全的抽象语法树,也无需通过访问器模式进行二次遍历。它采用对 SQL `半理解`的方式,仅提炼数据分片需要关注的上下文,因此 SQL 解析的性能和兼容性得到了进一步的提高。
-第三代 SQL 解析器从 3.0.x 版本开始,尝试使用 ANTLR 作为 SQL 解析引擎 的生成器,并采用 Visit 的方式从 AST 中获取 SQL Statement。从5.0.x 版本开始,解析引擎的架构已完成重构调整,同时通过将第一次解析的得到的 AST 放入缓存,方便下次直接获取相同 SQL的解析结果,来提高解析效率。 因此我们建议用户采用 `PreparedStatement` 这种 SQL 预编译的方式来提升性能。
+第三代 SQL 解析器从 3.0.x 版本开始,尝试使用 ANTLR 作为 SQL 解析引擎的生成器,并采用 Visit 的方式从 AST 中获取 SQL Statement。从 5.0.x 版本开始,解析引擎的架构已完成重构调整,
+同时通过将第一次解析的得到的 AST 放入缓存,方便下次直接获取相同 SQL的解析结果,来提高解析效率。 因此我们建议用户采用 `PreparedStatement` 这种 SQL 预编译的方式来提升性能。
### 功能点
-* 提供独立的SQL解析功能
-* 可以非常方便的对语法规则进行扩充和修改(使用了`ANTLR`)
-* 支持多种方言的SQL解析
+* 提供独立的 SQL 解析功能
+* 可以非常方便的对语法规则进行扩充和修改(使用了 `ANTLR`
+* 支持多种方言的 SQL 解析
| 数据库 | 支持状态 |
|----------|--------|
@@ -56,19 +57,19 @@ ShardingSphere SQL 解析器经历了 3 代产品的更新迭代。
|SQLServer |支持 |
|Oracle |支持 |
|SQL92 |支持 |
-* 提供SQL格式化功能(开发中)
-* 提供SQL模板话功能(开发中)
+* 提供 SQL 格式化功能(开发中)
+* 提供 SQL 模板话功能(开发中)
### API使用
引入Maven依赖
-```
+```xml
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-sql-parser-engine</artifactId>
<version>${project.version}</version>
</dependency>
-// 根据需要引入指定方言的解析模块(以MySQL为例),可以添加所有支持的方言,也可以只添加使用到的
+<!-- 根据需要引入指定方言的解析模块(以 MySQL 为例),可以添加所有支持的方言,也可以只添加使用到的 -->
<dependency>
<groupId>org.apache.shardingsphere</groupId>
<artifactId>shardingsphere-sql-parser-mysql</artifactId>
@@ -83,7 +84,7 @@ ShardingSphere SQL 解析器经历了 3 代产品的更新迭代。
```
/**
* databaseType type:String 可能值 MySQL,Oracle,PostgreSQL,SQL92,SQLServer
- * sql type:String 解析的SQL
+ * sql type:String 解析的 SQL
* useCache type:boolean 是否使用缓存
* @return parse tree
*/
@@ -94,7 +95,7 @@ ParseTree tree = new SQLParserEngine(databaseType).parse(sql, useCache);
```
/**
- * databaseType type:String 可能值 MySQL,Oracle,PostgreSQL,SQL92,SQLServer
+ * databaseType type:String 可能指 MySQL,Oracle,PostgreSQL,SQL92,SQLServer
* useCache type:boolean 是否使用缓存
* @return SQLStatement
*/
@@ -108,7 +109,7 @@ SQLStatement sqlStatement = sqlVisitorEngine.visit(tree);
```
/**
- * databaseType type:String 可能值 MySQL
+ * databaseType type:String 可能指 MySQL
* useCache type:boolean 是否使用缓存
* @return String
*/
diff --git a/docs/document/content/features/sharding/principle/parse.en.md b/docs/document/content/features/sharding/principle/parse.en.md
index 76e4237f5d..5b487cfc85 100644
--- a/docs/document/content/features/sharding/principle/parse.en.md
+++ b/docs/document/content/features/sharding/principle/parse.en.md
@@ -75,7 +75,7 @@ demo:
```
/**
- * databaseType type:String values: MySQL,Oracle,PostgreSQL,SQL92,SQLServer
+ * databaseType type:String values: MySQL,Oracle,PostgreSQL,SQL92,SQLServer
* sql type:String SQL to be parsed
* useCache type:boolean whether use cache
* @return parse tree