zoukankan      html  css  js  c++  java
  • 十:索引+慢查询

    索引

    对于数据库而言读写是9:1开,读多写少,读的过程就是IO,数据库需要从硬盘中获取数据,然后发送给客户端。

    IO是瓶颈,总不能从文件的第一行开始读一直读到最后一行吧,运气好第一行就找到了想要的数据,运气不好最后一行才找到。

    因此有了索引可以快速的定位数据,也就是前面desc 表名时看到的key字段

    primary key unique这两个除了加速查询,还有约束的作用

    而index key只有加速查询的作用

    索引的本质是一个数据结构,类似书的目录,那么查找时先找目录在230页,直接翻到230页就可以了。

    索引也是占硬盘空间的,索引相当于书的目录是用来读取数据的,一旦书写好了,此时进行写数据,那么目录是要变动的,根据新加的数据,重新生成目录

    索引加速了查,拖慢了写

    但是写相对读来说是很少的,多数瓶颈都是慢查询。

    索引的本质就是不断的缩小查询范围,来降低IO次数提高查询速度。

    磁盘

    转速越快,定位数据的时间越短,7200转/min,每秒转120次,转一圈需要1/120秒,转半圈1/120/2=4.17ms,转半圈大约4ms

    机械硬盘查找数据有两个延迟时间,一个叫平局寻道时间,受限于目前的物理水平,大约5ms时间,即便是找到数据的磁道,还要转圈转到那个点,才能拿到数据,取了一个平均值转半圈的时间,

    定位数据的时间=平均寻道时间+转半圈的时间(平均延迟时间),找到数据之后,接下来就会很快了。

    而cpu在一次io过程中可以执行450万条指令。

    索引数据结构

    是平衡二叉树,由B树演变而来,是B+树

    innodb的数据和索引存放在一个文件中,默认就是按照索引的树形结构去存放数据

    聚集索引(主键)的叶子节点放着整条数据,只能优化以主键为查询条件的查询

    辅助索引,主键之外的unique和index,叶子节点存放的是对应的主键字段的值。

    看十遍不如自己写一遍!巩固基础,纵横开拓!
  • 相关阅读:
    云如何解决安全问题 狼人:
    存储安全 系统的最后一道防线 狼人:
    云安全仍是企业决策者最大担心 狼人:
    骇客宣称已入侵多家认证机构 波及微软、谷歌 狼人:
    盘点云计算服务中的隐患 狼人:
    云服务安全吗?美国政府用实际行动告诉你 狼人:
    微软高层称移动设备越多 对信息安全需更多考量 狼人:
    云计算需要让安全优先 狼人:
    金山网络两月被黑4次 入侵黑客留名挑衅 狼人:
    惠普推出全新企业级安全软件 狼人:
  • 原文地址:https://www.cnblogs.com/gyxpy/p/11960724.html
Copyright © 2011-2022 走看看