应用
-
高危操作确认与规避。比如,DBA不小心Drop数据表,而此类操作,目前还无有效的工具进行回滚,尤其是大表,其后果将是灾难性的。
-
SQL合法性判断
-
去除无用条件:与或非 true & xxx (delete -> xxx) false & xxx (false) true | xxx (true) false | xxx (delete -> xxx)
-
生成SQL特征
parsing
String -> split -> produce Tree
- 词法分析(Lexical scanner) 分解: keyword, notkeyword (token)
- 语法规则(Grammar rule module) 组合成一个序列
optimizer
- 确定最优的执行序列(不一定),比如多个索引的时候该如何选择索引,多表查询的时候如何选择关联顺序等 多条件时的条件执行顺序 最终都要转换成有顺序的执行序列
写:bin log, redo log(InnoDB用redo log来支持事务, 两阶段提交)