zoukankan      html  css  js  c++  java
  • 7、索引

    作用:

    • 约束
    • 加速查找(空间换时间)

    种类:

    • 普通索引:加速查找 normal
    • 主键索引:加速查找、不能为空、不能重复
    • 唯一索引:加速查找、不能重复 unique
    • 联合索引(联合唯一):多列组合为一个索引;联合主键索引和联合唯一索引及联合普通索引

    加快查找:

    1. 无索引:原始数据文件中顺序查找,速度慢
    2. 有索引:另外创建索引文件,索引文件和原始数据有一定的对应关系,查找迅速
      • 索引种类:
        • hash索引
        • btree索引(多用):使用二叉树结构
      • 建立索引:
        1. 查快,增、删、改慢
        2. sql语句中where后=使用索引,快;like,不真正使用索引
        3. create (unique)  index  索引名  on  表名 (列名)  (唯一)普通索引
        4. drop  (unique)index  索引名  on  表名     删除索引
        5. create (unique)  index  索引名  on  表名 (列名1,列名2)  联合(唯一)索引;使用时遵循最左前缀匹配
      • 覆盖索引:指在索引文件中直接获取索引数据,而不用到原始数据中得到数据。
      • 合并索引:条件中用到多个单列索引
      • 组合所有效率 > 合并索引

    频繁查找的列创建索引:创建和命中(面试中问不命中的情形)

    • 数据多时,避免使用like,在项目中做搜索一般用第三方工具
    • 避免使用函数如select  * from   user  where  reverse(name)='lyb';
    • 类型不一致
    • !=,>,or,order by

    注意:

    • + 避免使用select  *
    • + 使用count(1)或count(列)
    • + 创建表时有定长的用char,并往前放
    • 组合索引代替多个单列索引
    • 尽量使用短索引
    • 连表时条件类型一致
    • + 索引散列值(重复少)不适合建立索引,如性别

    执行计划:type:const、ref、system快

    EXPLAIN SELECT * FROM useraccess WHERE access = '123'

    慢日志:

    C:ProgramDataMySQLMySQL Server 5.7my.ini中# General and Slow logging.

    渐变 --> 突变
  • 相关阅读:
    修改oracle用户密码永不过期
    mysql中的union操作(整理)
    mysql条件查询and or使用实例及优先级介绍
    vue实现购物清单列表添加删除
    vue实现全选框效果
    vue实现穿梭框效果
    legend3---13、vue是真的好用
    黑马在线教育项目---34-37、webuploader实现用户头像的异步上传
    lareval重命名created_at和updated_at字段
    js的dom操作(整理)(转)
  • 原文地址:https://www.cnblogs.com/lybpy/p/8245337.html
Copyright © 2011-2022 走看看