Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
2020fengziyang
soar
提交
b647d031
S
soar
项目概览
2020fengziyang
/
soar
与 Fork 源项目一致
Fork自
Xiaomi / soar
通知
1
Star
1
Fork
0
代码
文件
提交
分支
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,发现更多精彩内容 >>
提交
b647d031
编写于
1月 04, 2019
作者:
martianzhang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
format explain suggestion content
上级
4ea8a757
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
5 addition
and
5 deletion
+5
-5
advisor/index.go
advisor/index.go
+1
-1
database/explain.go
database/explain.go
+4
-4
未找到文件。
advisor/index.go
浏览文件 @
b647d031
...
...
@@ -978,7 +978,7 @@ func (idxAdvs IndexAdvises) Format() map[string]Rule {
if
common
.
Config
.
Sampling
{
cardinal
:=
fmt
.
Sprintf
(
"%0.2f"
,
col
.
Cardinality
*
100
)
if
cardinal
!=
"0.00"
{
rules
[
advKey
]
.
Content
+=
fmt
.
Sprintf
(
"为列%s添加索引
,
散粒度为: %s%%; "
,
rules
[
advKey
]
.
Content
+=
fmt
.
Sprintf
(
"为列%s添加索引
,
散粒度为: %s%%; "
,
col
.
Name
,
cardinal
)
}
}
else
{
...
...
database/explain.go
浏览文件 @
b647d031
...
...
@@ -302,14 +302,14 @@ var ExplainSelectType = map[string]string{
// ExplainAccessType EXPLAIN中ACCESS TYPE会出现的类型
var
ExplainAccessType
=
map
[
string
]
string
{
"system"
:
"这是const连接类型的一种特例, 该表仅有一行数据(=系统表)."
,
"const"
:
`const用于使用常数值比较PRIMARY KEY时, 当查询的表仅有一行时, 使用system. 例:SELECT * FROM tbl WHERE col =1.`
,
"eq_ref"
:
`除const类型外最好的可能实现的连接类型. 它用在一个索引的所有部分被连接使用并且索引是UNIQUE或PRIMARY KEY, 对于每个索引键, 表中只有一条记录与之匹配. 例:
'SELECT * FROM ref_table,tbl WHERE ref_table.key_column=tbl.column
;'.`
,
"const"
:
`const用于使用常数值比较PRIMARY KEY时, 当查询的表仅有一行时, 使用system. 例:SELECT * FROM tbl WHERE col =
1.`
,
"eq_ref"
:
`除const类型外最好的可能实现的连接类型. 它用在一个索引的所有部分被连接使用并且索引是UNIQUE或PRIMARY KEY, 对于每个索引键, 表中只有一条记录与之匹配. 例:
'SELECT * FROM RefTbl, tbl WHERE RefTbl.col=tbl.col
;'.`
,
"ref"
:
`连接不能基于关键字选择单个行, 可能查找到多个符合条件的行. 叫做ref是因为索引要跟某个参考值相比较. 这个参考值或者是一个数, 或者是来自一个表里的多表查询的结果值. 例:'SELECT * FROM tbl WHERE idx_col=expr;'.`
,
"fulltext"
:
"查询时使用 FULLTEXT 索引."
,
"ref_or_null"
:
"如同ref, 但是MySQL必须在初次查找的结果里找出null条目, 然后进行二次查找."
,
"index_merge"
:
`表示使用了索引合并优化方法. 在这种情况下. key列包含了使用的索引的清单, key_len包含了使用的索引的最长的关键元素. 详情请见 8.2.1.4, “Index Merge Optimization”.`
,
"unique_subquery"
:
`在某些IN查询中使用此种类型,而不是常规的ref:'value IN (SELECT
primary_key FROM single_table WHERE some_e
xpr)'.`
,
"index_subquery"
:
"在某些IN查询中使用此种类型, 与
unique_subquery
类似, 但是查询的是非唯一索引性索引."
,
"unique_subquery"
:
`在某些IN查询中使用此种类型,而不是常规的ref:'value IN (SELECT
PrimaryKey FROM SingleTable WHERE SomeE
xpr)'.`
,
"index_subquery"
:
"在某些IN查询中使用此种类型, 与
unique_subquery
类似, 但是查询的是非唯一索引性索引."
,
"range"
:
`只检索给定范围的行, 使用一个索引来选择行. key列显示使用了哪个索引. key_len包含所使用索引的最长关键元素.`
,
"index"
:
"全表扫描, 只是扫描表的时候按照索引次序进行而不是行. 主要优点就是避免了排序, 但是开销仍然非常大."
,
"ALL"
:
`最坏的情况, 从头到尾全表扫描.`
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录