Skip to content

Commit b606061

Browse files
Lordesssunsun314yanhuqing666PanternBaosimplelogic666
authored
migrate modification from master into 2.19.03/lts (#152)
* update cache explanation (#39) * update cache explanation * Update 1.6.1_cache_setting.md * Update 1.6.1_cache_setting.md * tweak * update 2.20_slow_query_log.md (#40) * update 2.20_slow_query_log.md * 2.20_slow_query_log.md * Update 3.4.3_normal_trans_syntax.md * Update 1.03_server.xml.md * Update 9.2_conf.md * doc for dble_1085 1169 * Update 1.03_server.xml.md * Update 1.03_server.xml.md * Update 3.6_procedure_support.md * Update README.md (#50) change Tel Number Co-authored-by: zhengfang.sun <sunsun3141@gmail.com> Co-authored-by: yanhuqing <yanhuqing@actionsky.com> Co-authored-by: Baofengqi <838800176@qq.com> Co-authored-by: tiger.yan <yanhuqing666@gmail.com> Co-authored-by: simplelogic666 <46476574+simplelogic666@users.noreply.github.com>
1 parent f3501d6 commit b606061

File tree

11 files changed

+33
-21
lines changed

11 files changed

+33
-21
lines changed

1.config_file/1.03_server.xml.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1791,10 +1791,10 @@ Host
17911791
<p><sub><font size="1">如需配置localhost可使用IP</font></sub></p>
17921792
host = "0:0:0:0:0:0:0:1"
17931793
</td>
1794-
<td rowspan="2"> <p><sub><font size="1">类似mysql的权限控制,指定某些IP</font></sub></p>
1795-
<p><sub><font size="1">只能有某些特定的用户登录进行登录。</font></sub></p>
1796-
<p><sub><font size="1">如启用白名单,除白名单标注的IP用户</font></sub></p>
1797-
<p><sub><font size="1">之外其他dble用户均无法登录</font></sub></p></td>
1794+
<td rowspan="2"> <p><sub><font size="1">ip值是多个平行配置的唯一标识,ip重复配置会导致部分配置丢失。如单个IP想配置多个用户请在user属性里用逗号隔开。</font></sub></p>
1795+
<p><sub><font size="1"> 白名单功能类似mysql的权限控制,指定某些IP只能有某些特定的用户登录进行登录。</font></sub></p>
1796+
<p><sub><font size="1">如启用白名单,除白名单标注的IP用户之外,其他dble用户均无法登录</font></sub></p>
1797+
</td>
17981798
<td rowspan="2">实例</td>
17991799
</tr>
18001800
<tr>
@@ -2635,7 +2635,7 @@ style="color: rgb(36,41,46);">是否进行严格的语法检测,Druid SQL Pars
26352635
</table>
26362636

26372637

2638-
### alarm(uocre告警grpc接口)
2638+
### alarm(ucore告警grpc接口)
26392639
此项不再需要单独配置,所需要的配置项从myid.properties 中读取,下面表格并非配置内容,而是内存里存储的值
26402640

26412641
<table class="confluenceTable">

1.config_file/1.6_cache/1.6.1_cache_setting.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,10 @@
33

44
dble的cache使用有如下三类:
55

6-
* SQLRouteCache:缓存sql语句到数据所在节点集的映射。
7-
* ER_SQL2PARENTID:缓存子表分区发现sql语句到数据所在节点的映射。
8-
* TableID2DataNodeCache:缓存分区键值到数据所在节点的映射。这是一个层次cache。
6+
* SQLRouteCache:从前端连接收到的SQL以及对应的路由结果 内容: shema_user_SQL -> 具体路由结果RouteResult
7+
* ER_SQL2PARENTID:父子表辅助查询SQL以及对应的路由结果。在插入ER子表的时候需要根据子表joinKey(父表parentKey)计算它应该插入的结点,所以需要辅助路由来查询,然后将辅助路由及对应的结果缓存下来以备下次查询。内容为:schema:select * from 父表 where parentKey = (value of joinKey) -> 对应数据dataNode
8+
* TableID2DataNodeCache:表格主键(schema.xml中声明的主键)和对应数据节点 内容 tableName -> primaryKeyValue -> 对应数据dataNode
9+
910

1011
#### 1.6.1.2 dble的cache实现
1112

2.Function/2.04_hint.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ Hint语法有两种形式:
5050

5151
### 2.4.5 注意事项
5252
写注解需要注意如下事项:
53-
53+
+ dble的注解和MySQL原生注解含义不同, 想通过MySQL原生注解来设置变量或者指定索引是无法得到预期结果的。如[#1169](https://github.com/actiontech/dble/issues/1169)
5454
+ 使用select语句作为注解SQL,不要使用delete/update/insert 等语句。 delete/update/insert 等语句虽然也能用在注解中,但这些语句在SQL处理中有一些额外的逻辑判断,会降低性能,不建议使用;
5555
+ 注解SQL 禁用表关联语句;
5656
+ 使用hint做DDL需要额外执行reload @@metadata

2.Function/2.10_table_meta/2.10.4_View_Meta.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#### 2.10.4.1 view meta概述
44
在Dble 2.18.11.0 版本中新添加了对于view的支持,作为一个中间件支持view采用的方法是和复杂查询类似的逻辑,将VIEW创建的语句中的select部分进行解析,并将解析所得到的解析树进行存储,当有query调用到视图的时候使用解析树进行局部的替代还原成完整的查询SQL,从而达到view实现的效果。
55

6-
在Mysql中的View是一种持久化的存储,结合在Dble中的view实现方式,Dble中view的实现会给Dble本身带来状态,这个状态需要Dble自身进行保存和维护,所以在view中采取了和XA事务日志相似的方式,并且以视图创建SQL的形式进行以下两种方式的存储
6+
在MySQL中的View meta信息是一种持久化的存储。Dble中的view实现方式也类似,这样Dble中view的实现会给Dble本身带来状态,这个状态需要Dble自身进行保存和维护,所以在view中采取了和XA事务日志相似的方式,并且以视图创建SQL的形式进行以下两种方式的存储
77

88
+ 本地文件存储
99
+ ZK存储

2.Function/2.20_slow_query_log.md

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
### 2.20.1 在server.xml里增加了6个参数,用于启动时候控制慢查询日志的行为
66
```
7-
<!-- 是否开启慢查询日志 -->
7+
<!-- 是否开启慢查询日志 -->
88
<property name="enableSlowLog">0</property>
99
<!-- 慢查询日志保存文件目录 -->
1010
<!--<property name="slowLogBaseDir">./slowlogs</property>-->
@@ -22,7 +22,7 @@
2222
enable @@slow_query_log; -- 开启慢查询日志
2323
show @@slow_query_log; -- 查询慢查询日志的开启状态
2424
disable @@slow_query_log; -- 关闭慢查询日志
25-
show @@slow_query_log;
25+
show @@slow_query_log; -- 再次查询慢查询日志的开启状态
2626
2727
show @@slow_query.time; -- 查看慢查询日志统计阈值
2828
reload @@slow_query.time=200; -- 修改慢查询日志统计阈值
@@ -746,7 +746,12 @@ select * from sharding_two_node where id =1\G
746746
747747
```
748748

749+
#### 2.20.3.3 限制
750+
751+
当mysqldumpslow版本为5.6或更早的版本时,在解析慢日志的过程中,由于mysqldumpslow只能识别'190428 10:28:16'格式的Time字段,而dble却使用了'2019-04-28T10:28:16.515000Z'字段格式,因此解析生成的慢日志会出错。详情参见issue:<https://github.com/actiontech/dble/issues/908>
752+
749753
### 2.20.4 附:慢查询日志格式解析
754+
750755
#### 2.20.4.1 MySQL 慢查询日志格式
751756

752757
先放一段正常记录的MySQL慢日志
@@ -912,8 +917,8 @@ Time Id Command Argument
912917
例如
913918

914919
`insert into test4 values(1,'1');`
915-
916-
920+
921+
917922
#### 2.20.4.2 dble 慢日志格式
918923

919924
为了兼容mysqldumpslow和pt-query-digest 工具,dble的慢日志格式如下:

3.SQL_Syntax/3.2_DML/3.2.09_LOAD_DATA.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,16 @@ INFILE 'file_name' INTO TABLE tbl_name
2828
load data infile 'data.txt' into table test_table CHARACTER SET 'utf8' FIELDS TERMINATED by ',';
2929
```
3030

31-
#### 3.2.9.3 限制
31+
#### 3.2.9.3 原理
32+
33+
dble解析MySQL协议之后,会根据数据路由拆分文件,每满足maxRowSizeToFile(可通过server.xml配置)就写到文件中,再通过 load data local infile 的方式导入到后端结点。
34+
所以,这里[local_infile](https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_local_infile)这个参数会影响到load data的正确性.
35+
可参考[#1085](https://github.com/actiontech/dble/issues/1085)
36+
37+
38+
#### 3.2.9.4 限制
3239

3340
* 存在BUG导致在Dble中CHARACTER SET charset_name必填
3441
* 在mysql中如果插入的数据不符合规范会插入部分数据,相对来说dble的load data对正确性有更高的要求,一个错误的发生会导致整体操作的回滚
3542
* 在ENCLOSED BY的时候存在BUG,使用的的时候会导致转义的数据无法被正确转义存储到数据库中
36-
* 由于当前解析设定的限制,loaddata限定数据行数65535,每行最大字节数65535,后续版本会考虑修改为可配置选项
43+
* 由于当前解析设定的限制,loaddata默认每列最大字节数65535,可通过server.xml 中的maxCharsPerColumn配置修改

3.SQL_Syntax/3.4_Transactional_and_Locking_Statements/3.4.3_normal_trans_syntax.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,5 +22,5 @@ ROLLBACK
2222
#### 3.4.3.2 限制
2323

2424
* 在Dble中一旦开启了SQL黑名单检查,不能使用BEGIN开启事务(druid解析器不支持)
25-
* 一般事务可能会出现部分提交的情况
25+
* 2PC实现的分布式事务(非xa方式)可能会出现commit时部分提交的情况,如需保障最终一致性,需要开启XA
2626

3.SQL_Syntax/3.6_procedure_support.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ begin
4444
end;
4545
调用存储过程:
4646
/*!dble:sql=select 1 from account */call proc_arc(1);
47-
call proc_arc(1);
4847
```
4948
### 3.6.3 限制
5049
* dble支持存储过程和自定义函数的透传,存储过程的开发完全使用MySQL的语法,开发、调试与部署的方法同单机MySQL相同。存储过程和自定义函数需要在所有节点上创建,节点扩容的时候也需要考虑存储过程和自定义函数的迁移。

5.Limit/5.2_other_limit.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
## 5.2 其他已知限制
22

33
1. 显式配置的父子表,在子表插入数据时,不能多值插入
4-
原因 : 父子表需要去当db中查询路由规则,多值查询功能较难完成,即使完成,性能也会很差。
4+
原因 : 子表插入数据时,如有parentkey不是父表的拆分列。需要去对应父表的拆分结点中反向查询路由规则,如果此时是多值插入,就会变成多值反查,查询功能较难完成,即使完成,性能也会很差。
55
相关issue : https://github.com/actiontech/dble/issues/12
66

77
2. 不支持JDBC的rewriteBatchedStatements=true

9.Sysbench_samples/9.2_conf.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
<user name="test">
6868
<property name="password">111111</property>
6969
<property name="schemas">mytest</property>
70-
<property name="benchmark">1000000</property>
70+
<property name="maxCon">1000000</property>
7171
</user>
7272
<user name="root">
7373
<property name="password">111111</property>

0 commit comments

Comments
 (0)