本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
数据库索引
奔跑的男人 · 399浏览 · 发布于2019-08-15 +关注

索引的概念   

       索引是对数据库表中一列或多列的值进行排序的一种数据结构,使用索引可快速访问数据库表中的特定信息。索引的一个主要目的就是加快检索表中数据,亦即能协助信息搜索者尽快的找到符合限制条件的记录ID的辅助数据结构。


 索引的使用场景 

      经常需要搜索的列上。


      作为主键的列上。


      经常用在连接的列上,这些列主要是一些外键,可以加快连接的速度。


      经常需要根据范围进行搜索的列上。


      经常需要排序的列上。


      不适合用在查询中很少用到的列。


      不适合用在那些具有很少数据值的列.比如人事表的性别列,boolean数据类型的列。


      不适合用在那些定义为text,image这些数据量相当大的列。


      不适合用在当对修改性能的要求远远大于搜索性能时.因为当增加索引时,会提高搜索性能,但是会降低修改性能。


      不适合含有NULL值,复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的。


      不适合对索引字段使用like “%aaa%” ,如果非使用不可like “aaa%”可以使用索引。


      不适合在列上进行计算,这样可能会导致索引失效。


      不适合使用NOT IN和<>操作

 索引的优点

       加快数据的检索速度。


      在信息检索过程中,若使用分组及排序子句进行时,通过建立索引能有效的减少检索过程中所需的分组及排序时间,提高检索效率。


      通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。


 索引的缺点


       创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加,如对表进行INSERT、UPDATE和DELETE。


       实际上索引也是一张表,该表保存了主键与索引字段.索引需要占物理空间。

 索引的分类

        聚簇索引(InnoDB 主键使用的是聚簇索引):表数据按照索引的顺序来存储的,也就是说索引项的顺序与表中记录的物理顺序一致。对于聚集索引,叶子结点即存储了真实的数据行,不再有另外单独的数据页。一般情况下主键会默认创建聚簇索引,在一张表上最多只能创建一个聚集索引,因为真实数据的物理顺序只能有一种。


        非聚簇索引(MyISAM 不管是主键索引,还是二级索引使用的都是非聚簇索引):表数据存储顺序与索引顺序无关。对于非聚集索引,叶结点包含索引字段值及指向数据页数据行的逻辑指针,其行数量与数据表行数据量一致。


 创建索引  

      1.  CREATE INDEX 索引名称 ON 表名称 (列名称); 简单索引

      2.  CREATE UNIQUE INDEX 索引名称 ON 表名称 (列名称) ;唯一索引

      3.  CREATE INDEX 索引名称 ON 表名称 (列名称, 列名称);组合索引

      4.  CREATE INDEX 索引名称 ON 表名称 (列名称 DESC) ; 降序索引


使用组合索引时需注意:只有第一个字段出现在查询条件中,该索引才可能被使用。因此将应用频度高的字段,放置在复合索引的前面,会使系统最大可能地使用此索引,发挥索引的作用。


   数据库索引的数据结构基础B+树

        B+ 树是一种树数据结构,通常用于数据库和操作系统的文件系统中。B+ 树的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间复杂度。B+ 树元素自底向上插入,这与二叉树恰好相反。

1. 所有关键字都出现在叶子结点的链表中(稠密索引),且链表中的关键字恰好是有序的;

2. 不可能在非叶子结点命中;

3. 非叶子结点相当于是叶子结点的索引(稀疏索引),叶子结点相当于是存储(关键字)数据的数据层;

4. 非叶子结点的子树指针与关键字个数相同;

5. 为所有叶子结点增加一个链指针;

6. 所有关键字都在叶子结点出现

7. 所有的叶子节点和相连的节点使用链表相连,便于区间查找和遍历;

8. 数据库中的索引一般是在磁盘上,数据量大的情况可能无法一次装入内存,B+树的设计可以允许数据分批加载,同时树的高度较低,提高查找效率;


相关推荐

使用SELECT语句检索数据

奔跑的男人 · 803浏览 · 2019-06-03 09:33:43
部署MySQL延迟从库的几个好处

吴振华 · 662浏览 · 2019-05-14 21:57:51
MongoDB凭什么跻身数据库排行前五?

iamitnan · 722浏览 · 2019-06-18 10:04:56
Oracle开启和关闭的几种模式

qq2360248666 · 750浏览 · 2019-06-04 10:18:47
加载中

0评论

评论
分类专栏
小鸟云服务器
扫码进入手机网页