zoukankan      html  css  js  c++  java
  • mysql数据库之索引和分析索引

    分析查询语句是否用到了索引

    explain sql语句G

    //根据返回的信息,我们可知,sql语句是否使用索引,从多少记录中取出,可以看到排序的方式.

    主要是看

    key 实际用到的索引

    rows 从多少行中找出数据

    37万条的数据

    不加索引的情况下 查询要2秒多

    具体我们来分析这个sql语句 看看他是从多少行数据中找到这些数据的

    检索了32w条数据才找到这些数据 

    下面是加上索引以后

     

    加了普通索引以后只花了0.173s

    通过分析发现用了我刚刚创建的索引   并在161行数据中找到了 数据

    索引的利弊

     在加快查询速度的同时 占用的磁盘空间也更大了 (用MyISAM引擎的话 会有一个文件专门放索引  如果一个比较大的表给一个字段加上索引 那么这个文件会变的非常大 ) 

    当在修改数据时 增加数据时 写入数据的同时也会写入索引增加io密集化

    如同样大小的表  一个表打上了5个索引  一个表只有一个主键索引  我们来对比下他们新增一条数据所用的时间

    1 有5个普通索引的表 新增一套数据用了0.55秒

    2没有普通索引只有一个主键索引的表 只用了不到0.1秒

    在此声明2张表除了索引不一样  数据大小 数据结构 都是一样的

    相差7-8倍的写入效率  如果在一个精彩写入和变动的表中 这是多么大的差距 所以不要滥用索引(在此引出下一章内容 如何设计表是更利于设置索引 在设置最少的索引的情况下如何最大的利用)

    l 在什么列上添加索引比较合适

    ① 在经常查询的列上加索引.

    ② 列的数据,内容就只有少数几个值,不太适合加索引.

    ③ 内容频繁变化,不合适加索引

        

  • 相关阅读:
    Android基础笔记(十八)- Fragment
    fedora20配置静态ip
    读《编程之美》励志篇
    官方教程Stealth学习笔记(一)
    从头认识Spring-2.4 基于java的标准注解装配-@Inject-限定器@Named
    POJ2186 Popular Cows [强连通分量|缩点]
    HDU2767Proving Equivalences[强连通分量 缩点]
    POJ1236Network of Schools[强连通分量|缩点]
    [USACO14OPEN] Dueling GPS's[最短路建模]
    洛谷2448 无尽的生命[树状数组 离散化]
  • 原文地址:https://www.cnblogs.com/wzjbk/p/5618417.html
Copyright © 2011-2022 走看看