| 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 (2的12次幂),那么生成器会等待到下个毫秒继续生成。 |
| +该序列是用来在同一个毫秒内生成不同的 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`, `>`, `<`, `>=`, `<=`分片,如果不配置 RangeShardingAlgorithm,SQL 中的 `BETWEEN AND` 将按照全库路由处理。 |
| +RangeShardingAlgorithm 是可选的,用于处理 `BETWEEN AND`, `>`, `<`, `>=`, `<=` 分片,如果不配置 RangeShardingAlgorithm,SQL 中的 `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)以及分页信息(Limit、Rownum、Top)。 |
| 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 |