Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Xiaomi
soar
提交
0f0aa884
S
soar
项目概览
Xiaomi
/
soar
大约 1 年 前同步成功
通知
387
Star
8512
Fork
1328
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
soar
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
0f0aa884
编写于
10月 20, 2018
作者:
martianzhang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update doc link
上级
c564d57b
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
9 addition
and
9 deletion
+9
-9
README_EN.md
README_EN.md
+1
-1
doc/editor_plugin.md
doc/editor_plugin.md
+1
-1
doc/enviorment.md
doc/enviorment.md
+1
-1
doc/structure.md
doc/structure.md
+6
-6
未找到文件。
README_EN.md
浏览文件 @
0f0aa884
![
SOAR
](
http
://github.com/XiaoMi/soar/raw
/master/doc/images/logo.png
)
![
SOAR
](
http
s://raw.githubusercontent.com/XiaoMi/soar
/master/doc/images/logo.png
)
[
![Gitter
](
https://badges.gitter.im/Join%20Chat.svg
)
](https://gitter.im/xiaomi-dba/soar)
[
![License
](
https://img.shields.io/badge/License-Apache%202.0-blue.svg
)
](http://github.com/XiaoMi/soar/blob/master/LICENSE)
...
...
doc/editor_plugin.md
浏览文件 @
0f0aa884
...
...
@@ -7,7 +7,7 @@
### 插件演示
![
Vim插件示例
](
http
://github.com/XiaoMi/soar/raw
/master/doc/images/vim_plugin.png
)
![
Vim插件示例
](
http
s://raw.githubusercontent.com/XiaoMi/soar
/master/doc/images/vim_plugin.png
)
### 常见问题
...
...
doc/enviorment.md
浏览文件 @
0f0aa884
## 集成环境
![
集成环境
](
http
://github.com/XiaoMi/soar/raw
/master/doc/images/env.png
)
![
集成环境
](
http
s://raw.githubusercontent.com/XiaoMi/soar
/master/doc/images/env.png
)
| 线上环境 | 测试环境 | 场景 |
| --- | --- | --- |
...
...
doc/structure.md
浏览文件 @
0f0aa884
# 体系架构
![
架构图
](
http
://github.com/XiaoMi/soar/raw
/master/doc/images/structure.png
)
![
架构图
](
http
s://raw.githubusercontent.com/XiaoMi/soar
/master/doc/images/structure.png
)
SOAR主要由语法解析器,集成环境,优化建议,重写逻辑,工具集五大模块组成。下面将对每个模块的作用及设计实现进行简述,更详细的算法及逻辑会在各个独立章节中详细讲解。
...
...
@@ -11,7 +11,7 @@ SOAR主要由语法解析器,集成环境,优化建议,重写逻辑,工
## 集成环境
集成环境区分
`线上环境`
和
`测试环境`
两种,分别用于解决不同场景下用户的SQL优化需求。一种常见的情况是已有表结构需要优化查询SQL的场景,可以从线上环境导出表结构和足够的采样数据到测试环境,在测试环境上就可以放心的执行各种高危操作而不用担心数据被损坏。另一种常见的情况是建一套全新的数据库,需要验证提供的数据字典中是否存在优化的可能。对于这种情况,很有可能你不需要知道线上环境在哪儿,完全只是想先试试看,如果报错了马上改对就是了。当然还有更多种组合的场景需求,将在
[
集成环境
](
http://github.com/XiaoMi/soar/
raw
/master/doc/enviorment.md
)
一单分类说明。
集成环境区分
`线上环境`
和
`测试环境`
两种,分别用于解决不同场景下用户的SQL优化需求。一种常见的情况是已有表结构需要优化查询SQL的场景,可以从线上环境导出表结构和足够的采样数据到测试环境,在测试环境上就可以放心的执行各种高危操作而不用担心数据被损坏。另一种常见的情况是建一套全新的数据库,需要验证提供的数据字典中是否存在优化的可能。对于这种情况,很有可能你不需要知道线上环境在哪儿,完全只是想先试试看,如果报错了马上改对就是了。当然还有更多种组合的场景需求,将在
[
集成环境
](
http://github.com/XiaoMi/soar/
blob
/master/doc/enviorment.md
)
一单分类说明。
## 优化建议
...
...
@@ -36,16 +36,16 @@ type Rule struct {
### 索引优化
关于索引优化,数据库经过几十年的发展,DBA沉淀了很多宝贵的经验,怎样把这些感性的经验转化为覆盖全面、逻辑可推导的算法是这种模块最大的挑战。很幸运的是SOAR并不是第一个尝试做这类算法整理的产品,有很多前人的著作、论文、博客等的知识储备。毫不夸张的说,为了写成这个模块我们读了不下5百万字的著作和论文,还不包括网络上各种大神的博客,这些老师们的知识结晶收集整理在
[
鸣谢
](
http://github.com/XiaoMi/soar/
raw/master/doc/thanks.md
)
章节。使用到的算法在
[
索引优化
](
http://github.com/XiaoMi/soar/raw
/master/doc/indexing.md
)
章节有详细的描述,虽然在某些算法理解上可能还存在一定争议,很希望与同行们共同讨论,共同进步,不断完善SOAR的算法。
关于索引优化,数据库经过几十年的发展,DBA沉淀了很多宝贵的经验,怎样把这些感性的经验转化为覆盖全面、逻辑可推导的算法是这种模块最大的挑战。很幸运的是SOAR并不是第一个尝试做这类算法整理的产品,有很多前人的著作、论文、博客等的知识储备。毫不夸张的说,为了写成这个模块我们读了不下5百万字的著作和论文,还不包括网络上各种大神的博客,这些老师们的知识结晶收集整理在
[
鸣谢
](
http://github.com/XiaoMi/soar/
blob/master/doc/thanks.md
)
章节。使用到的算法在
[
索引优化
](
http://github.com/XiaoMi/soar/blob
/master/doc/indexing.md
)
章节有详细的描述,虽然在某些算法理解上可能还存在一定争议,很希望与同行们共同讨论,共同进步,不断完善SOAR的算法。
### EXPLAIN解读
做过SQL优化的人对EXPLAIN应该都不陌生,但对于新手来说要记住每一个列代表什么含义,每个关键字背后的奥秘是什么需要足够的脑容量来记忆才行。统计了一下SOAR只在EXPLAIN信息的注解一项差不多写了200行代码,按平均行长度120计算,算下来一个DBA要精通EXPLAIN优化就要记住不下2万字的文档。SOAR能帮每为DBA节约了这部分脑容量。不过关于EXPLAIN解读还远不止这些,想了解更多可以参考
[
EXPLAIN信息解读
](
http://github.com/XiaoMi/soar/
raw
/master/doc/explain.md
)
章节。
做过SQL优化的人对EXPLAIN应该都不陌生,但对于新手来说要记住每一个列代表什么含义,每个关键字背后的奥秘是什么需要足够的脑容量来记忆才行。统计了一下SOAR只在EXPLAIN信息的注解一项差不多写了200行代码,按平均行长度120计算,算下来一个DBA要精通EXPLAIN优化就要记住不下2万字的文档。SOAR能帮每为DBA节约了这部分脑容量。不过关于EXPLAIN解读还远不止这些,想了解更多可以参考
[
EXPLAIN信息解读
](
http://github.com/XiaoMi/soar/
blob
/master/doc/explain.md
)
章节。
## 重写逻辑
上面提到的优化建议是我们早期实现的主要功能,早期的功能还只是停留在建议上,对于一些初级用户看到建议也不一定会改写。为了进一步简化SQL优化的成本,SOAR又进一步挖掘了自动SQL重写的功能。现在提供几十种常见场景下的SQL等价转写,不过相比SQL优化建议还有很大的改进空间。这部分的功能和逻辑将在
[
重写逻辑
](
http://github.com/XiaoMi/soar/
raw
/master/doc/rewrite.md
)
一章中详细说明。
上面提到的优化建议是我们早期实现的主要功能,早期的功能还只是停留在建议上,对于一些初级用户看到建议也不一定会改写。为了进一步简化SQL优化的成本,SOAR又进一步挖掘了自动SQL重写的功能。现在提供几十种常见场景下的SQL等价转写,不过相比SQL优化建议还有很大的改进空间。这部分的功能和逻辑将在
[
重写逻辑
](
http://github.com/XiaoMi/soar/
blob
/master/doc/rewrite.md
)
一章中详细说明。
## 工具集
除了SQL优化和改写以外,为了方便用户使用以及美化输出展现形式,SOAR还提供了一些辅助的小工具,比如markdown转HTML工具,SQL格式化输出工具等等。你可以在
[
常用命令
](
http://github.com/XiaoMi/soar/
raw
/master/doc/cheatsheet.md
)
中找到这些小工具的使用方法。
除了SQL优化和改写以外,为了方便用户使用以及美化输出展现形式,SOAR还提供了一些辅助的小工具,比如markdown转HTML工具,SQL格式化输出工具等等。你可以在
[
常用命令
](
http://github.com/XiaoMi/soar/
blob
/master/doc/cheatsheet.md
)
中找到这些小工具的使用方法。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录