sql优化

系统管理员 2021-03-30 16:03 720阅读 0赞

1、all: 全表扫描,遍历全表找到匹配的行

index:索引全扫描,遍历整个索引来查询匹配的行

range:索引范围扫描,常见于<,>,>=,between等操作符

ref: 使用非唯一索引扫描或唯一索引的前缀扫描,返回匹配某个单独值的记录行

eq_ref:类似ref,区别就是使用的索引是唯一索引,对于每个索引键值,表中只有一条记录匹配。简单来说,就是多表连接中使用primary key或者unique index 作为关联条件

const/system:单表中最多有一个匹配行,查询起来非常迅速,所以这个匹配行中的其他列的值可以被优化器在当前查询中当做常量来处理,例如:根据主键或唯一索引进行查询

null: 不用访问或者索引,直接得到的结果

以上性能有差到好

2、索引

索引是在存储引擎层中实现的,而不是服务器层上实现的。所以每种索引在不同的存储引擎上不一定完全相同。

B-tree索引:最常见。

hash索引: 是memory的独有的,使用场景简单。

R-tree索引 (空间索引) 是MyISAM的一个特殊索引类型。

Full-text索引 (全文索引) 是MyISAM的一个特殊索引类型。

3、B-tree索引

B代表的是balance 平衡树

利用B-tree可以进行全关键字、关键字范围和关键字前缀查询


发表评论

表情:
评论列表 (有 0 条评论,720人围观)

还没有评论,来说两句吧...

相关阅读

    相关 SQL优化(三):SQL优化实战

    前两节基本是讲了SQL优化重要的工具大概思路,你连explain都看不明白,遇到慢查询一个SQL执行半天的情况,估计优化起来肯定无处着手。 这节主要是SQL优化的具体实战,常

    相关 SQL优化

                                    SQL优化 1、SQL语句尽量用大写       因为oracle解析SQL语句时,总是先把小写的字

    相关 SQL优化

      网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。 这篇文章我花费了大量的时间查找资料、修

    相关 sql优化

    1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2,应尽量避免在 where 子句中对字段进行 null 值判

    相关 SQL优化

    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断

    相关 sql优化

    1、all: 全表扫描,遍历全表找到匹配的行 index:索引全扫描,遍历整个索引来查询匹配的行 range:索引范围扫描,常见于<,>,>=,between等操作符 ...