zoukankan      html  css  js  c++  java
  • sql之索引

     作用:

      - 约束

      - 加速查找

    普通索引:加速查找

      create index 索引名称 on 表名(列名,)

      drop index 索引名称 on 表名

    主键索引:加速查找+不能为空+不能重复

      create unique index 索引名称 on 表名(列名)

      drop unique index  索引名称 on 表名

    唯一索引:加速查找+不能重复 

    组合索引:

      - 最左前缀匹配,即要用索引,where里一定要先用上最左列。

       如组合索引为(name,email)

       name and email     --使用索引

       name       --使用索引  

       email          --不使用索引

      - 经常用多列用组合索引好,单列多的话用索引合并好

    create unique index 索引名称 on 表名(列名,列名)

      drop

    覆盖索引

      在索引文件里直接获取数据

    索引合并

      把多列索引合并使用

     

    建立索引其实是另建文件保存特殊的数据结构,按hash或btree规则存放。

    查询快,插入删除更新慢。

    命中索引:(避免使用以下)

      - like '%xy'

      - 函数,如reverse()

      - or

      - 类型不一致。如果列是字符串类型,传入条件必须要用引号引起来

      - !=  

      - >

      - order by

    避免性能低下的注意事项:

      - 避免使用select *

      - count(1) 或count(列名)代替 count(*)

      - 创建表时尽量用char代替varchar

      - 表的字段顺序 固定长度的字段优先

      - 组合索引代替多个单列索引(经常使用多个条件查询时)

      - 尽量使用短索引(如create index on tb(title(16))

      - 使用join代替子查询(mysql中一样,其他的sql有区别)

      - 连表时注意条件类型需一致(如不要轻易该char 为int)

      - 索引散列值(重复少)不适合建索引,如性别不适合

  • 相关阅读:
    【面试】前端基本
    【echart】学习笔记
    【Django】url传递参数
    【HTML】section
    【jquery】获取元素高度
    【ztree】ztree例子
    【CSS3】块级元素与行内元素的区别
    Vue 项目中应用
    Vue 指令
    Vue 组件
  • 原文地址:https://www.cnblogs.com/stin/p/8575213.html
Copyright © 2011-2022 走看看