索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。

1、按照索引列值的唯一性,索引可分为唯一索引和非唯一索引

  非唯一索引:B树索引

  create index 索引名 on 表名(列名) tablespace 表空间名;

  唯一索引:建立主键或者唯一约束时会自动在对应的列上建立唯一索引

2、索引列的个数:单列索引和复合索引

3、按照索引列的物理组织方式

  B树索引

  create index 索引名 on 表名(列名) tablespace 表空间名;

  位图索引

  create bitmap index 索引名 on 表名(列名) tablespace 表空间名;

  反向键索引

  create index 索引名 on 表名(列名) reverse tablespace 表空间名;

  函数索引

  create index 索引名 on 表名(函数名(列名)) tablespace 表空间名;

运用索引的条件

1、较频繁地作为查询条件的字段

2、唯一性太差的字段不适合建立索引

3、更新太频繁地字段不适合创建索引

4、不会出现在where条件中的字段不该建立索引

SQL优化

1、避免使用select * ,而是具体指出选择哪些列

2、SQL大小写,数据库在解析sql时,先把SQL语句转换为大写,再进行解析操作,所以建议直接提供大写的SQL语句。

3、过滤时,>和>=,使用>=优先,如a>2000和a>=2001,这样可以避免过滤2000和2001之间的小数,可以调高效率

4、where子句中,不等于判断会使索引失效。

5、where子句中,对列做运算,例如,加减乘除,会使索隐列失效。所以尽量不要在索隐列上做操作。

6、模糊查询时,like "%abc%",前模糊会导致索引失效,后模糊不会导致索引失效。

SQL Select语句完整的执行顺序

1、from子句组装来自不同数据源的数据;
2、where子句基于指定的条件对记录行进行筛选;
3、group by子句将数据划分为多个分组;
4、使用聚集函数进行计算;
5、使用having子句筛选分组;
6、计算所有的表达式;
7、使用order by对结果集进行排序。
8、select 集合输出。

最新文章

  1. CSS3中的px,em,rem,vh,vw辨析
  2. iOS导航控制器常用函数与navigationBar常用属性
  3. Postman Postman测试接口之POST提交本地文件数据
  4. 个人对beta发布的观点
  5. Mac java环境配置
  6. GridView 无数据时,绑定提示
  7. python之正则表达式备忘
  8. leetcode修炼之路——350. Intersection of Two Arrays II
  9. C++标准库之泛型算法
  10. StackWalk64
  11. 记一次sql server 2005访问http接口,并解析json的过程
  12. 【java】String类常见操作
  13. Linux系统——程序员跳槽必备
  14. 详解JNDI的lookup资源引用java:/comp/env
  15. Asp.Net_优化
  16. 探求C#.Net中ArrayList与Array的区别
  17. runloop timer
  18. 清除 Windows 系统垃圾的 bat
  19. 碰到的一个新的东西——yaml,果然是个好东西
  20. S3C2440上LCD驱动(FrameBuffer)实例开发讲解

热门文章

  1. Hadoop 管理工具HUE配置-Yarn Resource Manager HA配置
  2. HTTP/HLS/RTMP超级负载测试工具
  3. Flume监听文件目录sink至hdfs配置
  4. 廖雪峰Java2面向对象编程-3继承和多态-1继承
  5. php中的各种http报错的报错的状态码的分析
  6. Django中的路由配置简介
  7. Jmeter(三十四)Jmeter-Question之“Cookie获取”
  8. babel-polyfill
  9. Java——word分词·自定义词库
  10. HBase核心知识和应用案例