zoukankan      html  css  js  c++  java
  • 数据库索引

    主索引:能唯一标识一条记录,只能由一个字段组成,一个表只能建立一个主索引

    候选索引:能唯一标识一条记录,但不一定只有一个字段组成,一个表可建立多个

    普通索引:无限制,可任意建立,不能标识唯一激励,目的只是为了加快查询速度

    唯一索引:和普通索引相似,但索引列的值必须唯一,但允许有空值

    单列索引:即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。

    组合索引:即一个索包含多个列。

    搜索码:用于在本间中查找记录的属性或属性集

    稠密索引:文件中的每个搜索码都有一个索引项

    稀疏索引:只为搜索码某些值建立索引项

    聚集索引:在innoDB中 聚集索引只有一个 即主键索引,非叶子节点存储主键 叶子节点存储这条记录的所有信息。
    非聚集索引:即普通索引,非叶子节点存储设置索引字段的值,叶子节点存储当前记录对应的主键ID。
    回表:通过非主键索引进行查询,select所要获取的字段不能通过非主键索引获取到,需要通过非主键索引获取到的主键,从聚集索引再次查询一遍,获取到所要查询的记录,这个查询的过程就是回表。 所以我们查询的字段 如果有联合索引的话.比如 select id, A,B where A = "a" and B="b"。表中有联合索引(A,B) 叶子节点也会存储id,就不需要回表。但是如果select A,B,C 因为C不在联合索引上,所以只能先查询到id 再回表 通过主键索引去查询。

    使用B树或者B+树实现索引的原因:

      B树出度大,高度小,读取的少,快

     索引失效的情况

    1.like" %__" 百分号在前

    2 引用复合索引里非第一位置的索引列

    3.字符型字段为数字时,where条件里不加引号

    4对索引列进行计算,建立函数索引

    5 对索引字段判断是否为null或者某个值

  • 相关阅读:
    在win2003中发布部署vs2010b2写的mvc2网站
    安装blender2.5Alpha0
    Win7下虚拟机个人使用小结:Virtual PC,VMware和VirtualBox
    ASP.NET AJAX Control Toolkit Beta 0911 发布[再增两控件]
    Camtasia 6录屏时鼠标闪烁问题解决
    为XNA制做安装程序(四)WIX Toolset 3.0 for Visual Studio 2008
    Oracle EM 12c
    无题
    从徐汇到虹口
    近况
  • 原文地址:https://www.cnblogs.com/team42/p/7016943.html
Copyright © 2011-2022 走看看