• 索引


    什么是索引?它可以做什么用?

    如果不在数据库中建立索引,那么执行一条select语句就会进行全表扫描,也就是一条一条的找。

    打个比方:如果没有目录,查汉语字典就要一页页的翻,而有了目录只要查询目录即可。为了提高检索的速度,可以为经常进行检索的列添加索引,相当于创建目录。   

    怎么创建索引?

    一个表中有一个到多个字段,我们使用索引查找一条记录的时候,也能是以一个字段为准

    创建索引的方式,在表设计器中点击右键,选择“索引/键”→添加→在列中选择索引包含的列。

    引入一个概念:索引树

        以查找汉语词典中的一个字为例子:假设我们使用的是拼音检索的方式,查“猪”这个字,它的拼音是”zhu”先找的是z,然后是h再是u,找z的时候是从a-z这26个字母中找到的,找h的时候,也是从一系列的字母中找到的,u同样也是的,这样下来,就是一棵树。

    索引的坏处

    使用索引能提高查询效率,但是索引也是占据空间的,而且添加、更新、删除数据的时候也需要同步更新索引,因此会降低Insert、Update、Delete的速度。只在经常检索的字段上(Where)创建索引。

    有了索引,有时也会进行全表扫描

    即使创建了索引,仍然有可能全表扫描,比如like、函数、类型转换等。

    聚集索引与非聚集索引

    聚集索引:在物理位置上,是放在一起的,比如说拼音检索,词典中的汉字就是按从a到z的顺序放的。

    非聚集索引:就像是偏旁检索方式。
    填充因子

    因为针对一个列的索引可能有很多,比如a-z,那么这些索引在一个页面中是放不完的,于是分开几个页面来放,假设第一页面放a-e,第二页放f-k,当我们后面要在a-e这中间加一个索引的时候,如果之前我们就反第一页的空间放满了,那么后面所有的页面都要往后面移,如果第一页没有放满,就只要移第一页了。填充因子也就是这个页面的留下的空间。

  • 相关阅读:
    聊天系统Demo,增加文件传送功能(附源码)-- ESFramework 4.0 快速上手(14)
    文件传送,如此简单--ESFramework 4.0 快速上手(13)
    PAT B1012.数字分类
    PAT B1046.猜拳
    PAT B1016.部分A+B(15)
    记录:挑战搭建一个简易的成绩管理系统的数据库
    mysql学习记录(一)
    使用foreach一次性添加多个单选按钮
    通过metaclass实现精简的ORM框架
    高级BASH
  • 原文地址:https://www.cnblogs.com/La5DotNet/p/2879578.html
Copyright © 2020-2023  润新知