sql优化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql优化相关的知识,希望对你有一定的参考价值。

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可以进行全关键字、关键字范围和关键字前缀查询

 

 


 

以上是关于sql优化的主要内容,如果未能解决你的问题,请参考以下文章

SQL 优化

项目中优化sql语句执行效率的方法是啥?

SQL优化之语句优化

数据库优化篇—— SQL语句优化建议

基于MySQL 的 SQL 优化总结

【DB2】SQL优化