From 3dda683a4947574560fbbd8b3f51e0af3de36358 Mon Sep 17 00:00:00 2001 From: Leon Zhang Date: Fri, 23 Nov 2018 18:37:33 +0800 Subject: [PATCH] update rules' doc --- advisor/rules.go | 4 ++-- advisor/testdata/TestListHeuristicRules.golden | 2 +- advisor/testdata/TestMergeConflictHeuristicRules.golden | 2 +- doc/heuristic.md | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/advisor/rules.go b/advisor/rules.go index f4c4858..3215065 100644 --- a/advisor/rules.go +++ b/advisor/rules.go @@ -897,7 +897,7 @@ func init() { Item: "RES.006", Severity: "L4", Summary: "永远不真的比较条件", - Content: "查询条件永远非真,这将导致查询无匹配到的结果。", + Content: "查询条件永远非真,如果该条件出现在 where 中可能导致查询无匹配到的结果。", Case: "select * from tbl where 1 != 1;", Func: (*Query4Audit).RuleImpossibleWhere, }, @@ -1335,7 +1335,7 @@ func FormatSuggest(sql string, format string, suggests ...map[string]Rule) (map[ } default: - common.Log.Debug("unknown report-type %s", format) + common.Log.Debug("report-type: %s", format) buf = append(buf, fmt.Sprintln("Query: ", sql)) for _, rule := range suggest { buf = append(buf, pretty.Sprint(rule)) diff --git a/advisor/testdata/TestListHeuristicRules.golden b/advisor/testdata/TestListHeuristicRules.golden index bf09a2e..7afdff8 100644 --- a/advisor/testdata/TestListHeuristicRules.golden +++ b/advisor/testdata/TestListHeuristicRules.golden @@ -936,7 +936,7 @@ update tbl set col = 1 and cl = 2 where col=3; * **Item**:RES.006 * **Severity**:L4 -* **Content**:查询条件永远非真,这将导致查询无匹配到的结果。 +* **Content**:查询条件永远非真,如果该条件出现在 where 中可能导致查询无匹配到的结果。 * **Case**: ```sql diff --git a/advisor/testdata/TestMergeConflictHeuristicRules.golden b/advisor/testdata/TestMergeConflictHeuristicRules.golden index 1f52349..f403e35 100644 --- a/advisor/testdata/TestMergeConflictHeuristicRules.golden +++ b/advisor/testdata/TestMergeConflictHeuristicRules.golden @@ -88,7 +88,7 @@ advisor.Rule{Item:"RES.002", Severity:"L4", Summary:"未使用 ORDER BY 的 LIMI advisor.Rule{Item:"RES.003", Severity:"L4", Summary:"UPDATE/DELETE 操作使用了 LIMIT 条件", Content:"UPDATE/DELETE 操作使用 LIMIT 条件和不添加 WHERE 条件一样危险,它可将会导致主从数据不一致或从库同步中断。", Case:"UPDATE film SET length = 120 WHERE title = 'abc' LIMIT 1;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}} advisor.Rule{Item:"RES.004", Severity:"L4", Summary:"UPDATE/DELETE 操作指定了 ORDER BY 条件", Content:"UPDATE/DELETE 操作不要指定 ORDER BY 条件。", Case:"UPDATE film SET length = 120 WHERE title = 'abc' ORDER BY title", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}} advisor.Rule{Item:"RES.005", Severity:"L4", Summary:"UPDATE 语句可能存在逻辑错误,导致数据损坏", Content:"在一条 UPDATE 语句中,如果要更新多个字段,字段间不能使用 AND ,而应该用逗号分隔。", Case:"update tbl set col = 1 and cl = 2 where col=3;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}} -advisor.Rule{Item:"RES.006", Severity:"L4", Summary:"永远不真的比较条件", Content:"查询条件永远非真,这将导致查询无匹配到的结果。", Case:"select * from tbl where 1 != 1;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}} +advisor.Rule{Item:"RES.006", Severity:"L4", Summary:"永远不真的比较条件", Content:"查询条件永远非真,如果该条件出现在 where 中可能导致查询无匹配到的结果。", Case:"select * from tbl where 1 != 1;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}} advisor.Rule{Item:"RES.007", Severity:"L4", Summary:"永远为真的比较条件", Content:"查询条件永远为真,可能导致 WHERE 条件失效进行全表查询。", Case:"select * from tbl where 1 = 1;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}} advisor.Rule{Item:"RES.008", Severity:"L2", Summary:"不建议使用LOAD DATA/SELECT ... INTO OUTFILE", Content:"SELECT INTO OUTFILE 需要授予 FILE 权限,这通过会引入安全问题。LOAD DATA 虽然可以提高数据导入速度,但同时也可能导致从库同步延迟过大。", Case:"LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}} advisor.Rule{Item:"SEC.001", Severity:"L0", Summary:"请谨慎使用TRUNCATE操作", Content:"一般来说想清空一张表最快速的做法就是使用TRUNCATE TABLE tbl_name;语句。但TRUNCATE操作也并非是毫无代价的,TRUNCATE TABLE无法返回被删除的准确行数,如果需要返回被删除的行数建议使用DELETE语法。TRUNCATE 操作还会重置 AUTO_INCREMENT,如果不想重置该值建议使用 DELETE FROM tbl_name WHERE 1;替代。TRUNCATE 操作会对数据字典添加源数据锁(MDL),当一次需要 TRUNCATE 很多表时会影响整个实例的所有请求,因此如果要 TRUNCATE 多个表建议用 DROP+CREATE 的方式以减少锁时长。", Case:"TRUNCATE TABLE tbl_name", Position:0, Func:func(*advisor.Query4Audit) advisor.Rule {...}} diff --git a/doc/heuristic.md b/doc/heuristic.md index bf09a2e..7afdff8 100644 --- a/doc/heuristic.md +++ b/doc/heuristic.md @@ -936,7 +936,7 @@ update tbl set col = 1 and cl = 2 where col=3; * **Item**:RES.006 * **Severity**:L4 -* **Content**:查询条件永远非真,这将导致查询无匹配到的结果。 +* **Content**:查询条件永远非真,如果该条件出现在 where 中可能导致查询无匹配到的结果。 * **Case**: ```sql -- GitLab