zoukankan      html  css  js  c++  java
  • 索引

    day 49
     
    索引
    元类
     
     

    什么叫索引?
     搜索
     主键
     外键
     index
     
     
     为了加速查询
     
     
     
     
     有序的
     数据量小的字段
     
     
     
     
     
     
     最左匹配原则
     
     聚集索引
     
     辅助索引
     
     覆盖索引
     
     回表
     
     
     
     
     主键加索引
     
     先建索引再加数据
     
     条件中有索引匹配上,命中索引
     
     无论索引如何设计,无法范围查询
     
     创建索引语句:
     创建索引很慢
     create index name_index on usr (name);
     
     索引不应当加在值重复度很高的地方。正确使用姿势,应该加在重复度低的地方
     
     模糊匹配
     
     
     
     
     
     
     
     
     62122 6100 1019 068 516
     
     
    ----------------------------------------------------------------------------------------------------------
    索引
    读多写少
    select * from emp where 条件;
    针对数据的优化:
     精准定位要找的数据,提升查询效率
     
     
     select id ,name from emp where id = 2;
     
    书的目录功能
    火车票
    门牌号
     
     索引在mysql中也叫做键,是存储引擎用于快速找到记录的一种数据结构。
     
     
     加速查询
     主键
     primary key
     
     除了有索引功能还有约束功能
     unique key
     
     只有索引功能
     index key
     
     

     怎么加索引?
     
     对哪些字段加索引?
      id字段可以加
      占空间较小的字段
      区分度高的字段
      
      索引字段不要参与运算,索引字段就是一个明确的值
      
      
     
    索引原理:
     本质就是不断缩小想要获取数据的范围来筛选出最终想要的结果。减少查询次数,提高查询速度
     
     
    磁盘io与预读
     io延迟9ms
      
    索引的数据结构
     B+树结构
     
     只有叶子结点才存放真正的数据,
     
     select id ,name from emp where id = 2;
     先读入id字段,根节点--->读到内存---->经过三次io找到
     
     树的高度,索引的数越低越少
     一个磁盘块的大小是固定的,应该对占内存数据量小的字段加索引,可以容纳更多的数据项
      
      
     聚集索引
      指的就是主键
      innodb表    每个表指定个主键,一定要有一个字段建树形结构
      
      聚集索引的特点:
       他的每个叶子节点上会存放一整条记录
       
      
      
     辅助索引
      除了聚集索引之外的都叫辅助索引
      特点是:
       叶子结点只放这个值,以及这个值的主键id编号。
     
     
     覆盖索引
      在你的叶子结点找到你想要的值,就是你想查询的结果割你的条件是一致的
      select age from emp where  age = 30;
     
    建一个索引的话速度会非常的慢,数据文件会比原来加大 
      
     回表 不如覆盖索引效率高
     

    explain 查询优化神器
    explain select * from s1 order by id limit 10;
    创建索引
    create index  idx_id on s1(id);
    创建一个索引,起一个名idx_id针对id的索引,on针对哪个表s1,针对s1的哪个字段(id)
    删索引
    drop index idx_id on s1;
     
    怎么创建主键的索引表
    alter table s1 add primary key(id);

    alter table s1 drop primary key ;
     
     
    跟范围有关系,有一个很大的范围,即使有索引也不会太快
    >
    <
    !=
    between and
    like模糊查询
     
     
    最左匹配原则
     

    and 且
    从左往右一个一个运行,有一个不成立就不成立
    or 或
     
     
     
     
    不是所有sql语句都可以优化的。
     
     
     
     
  • 相关阅读:
    在文本框按回车 表单自动提交的解决方法
    类型提示保障数据安全
    LastModified,ETag,CacheControl,Expires 设置页面过期策略
    Netstat 状态分析
    Web 开发与设计师速查手册大全(上)
    Google推出网页加速工具Page Speed
    最近关于twitter架构的一篇文章
    PHP cookie和session的分析(转)
    关于win10深度学习安装配置 CUDA9.0+VS2017+Cudnn7.4.1.5+Anaconda3(cupy安装包)+python3.7+pycharm
    Python命令行解析argparse常用语法使用简介
  • 原文地址:https://www.cnblogs.com/zhangrenguo/p/10027538.html
Copyright © 2011-2022 走看看