【第22期】观点:IT 行业加班,到底有没有价值?

关于索引来解决慢查询的问题

原创 2016年08月29日 23:11:50

    写这篇博客并不是近期遇到这个问题,只是最近有点程序员的困惑,想着把自己知道的东西总结下来,这样心会安静点

    首先我需要讲一下索引的概念。数据库的索引就是跟书本的索引一样,可以快速的找到你想找到的东西,从而大大提高性能。

    当我们想去看看SQL语句走了哪些索引的时候,直接explain sql语句就可以查看了,例如:explain select * from user where userid="2";

   执行完这条语句后会出现10个字段,分别是id,select_type, table,type,possible_keys,key,ley_len,ref,rows,Extra。



id:这个代表着语句的查询顺序,现在上面只有1,但是如果出现联合查询语句的话,那就会有2,甚至有3等等。

select_type:这是搜索的级别,这里面有这个几个东西:大家可以参考一下这个博客:http://my.oschina.net/scipio/blog/293051?p=1

table:就是查询的表,这个没什么好说的

type:这里面有个比较,system>const>eq_ref>ref>fulltext>ref_or_null>index_merge>unique_subquery>index_subquery>range>index>all。其中system是最好,ALL是最次的

possible_keys:有可能会走的索引

key:实际走的索引

key_len:sql走的索引的长度

row:表示sql查询了几行才找到数据

Extra:查询的过程中的补充信息,这里我就不多说,http://my.oschina.net/scipio/blog/293052这篇博客说的很详细。



我需要补充的是:有个大牛跟我说,sql语句走哪条索引是不可控的,是自身来计算决定的。我们只能去做一些索引来供它去选择,以上言论供大家参考。


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

SQL调优 - Hints指定索引 解决慢查询案例

背景     每当交易高峰时期,可能会暴露一些平时无法发现的问题,机遇和挑战并存。下面聊聊最近解决的一个案例,因为执行计划走错,导致数据库压力攀升,进而引发应用线程阻塞、线程池爆满,最后应用功能瘫痪...

MongoDB索引文件破坏后导致查询错误的问题

问题描述: MongoDB<span style="font-family:

程序员升职加薪指南!还缺一个“证”!

CSDN出品,立即查看!

DB:实战 Force Index() 强制 MariaDB使用索引解决慢查询问题

测试环境:Ubuntu14.04 DB:MariaDB10, 使用Innodb引擎 客户端:Navicat9 测试表:tb_ips_ui,数据量44w, 一个根据ip确定所在省市信息的表(用纯真IP...

走主键索引的查询sql变慢的问题

问题描述数据库hang,大量latch: cache buffers chains异常等待事件 业务慢,主机CPU达到100% Event

HBase一次慢查询请求的问题排查与解决过程

以下是我们对HBase集群一次慢查询请求问题的排查解决过程。 1. 发现问题 项目中有一张HBase表,每天凌晨以后会集中批量导入一批数据,导入数据量很大,在千万到亿的量级,然后白天为用户提供查询...
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)