秋招面试准备-数据库知识

索引、触发器、存储过程、连接、死锁机制、数据库的恢复、备份、union、MySQL引擎

索引

深入浅出数据库索引原理

  1. 索引是什么?

索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息。索引是经过某种算法优化过的,因而查找次数要少的多。可见,索引是用来定位的。数据库索引好比是一本书前面的目录,能加快数据库的查询速度。

索引分为聚簇索引非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。根据数据库的功能,可以在数据库设计器中创建三种索引:唯一索引、主键索引和聚集索引。

唯一索引:是不允许其中任何两行具有相同索引值的索引。

主键索引:数据库表经常有一列或多列组合,其值唯一标识表中的每一行,该列称为表的主键。在数据库关系图中为表定义主键将自动创建主键索引,主键索引是唯一索引的特定类型。该索引要求主键中的每个值都唯一。当在查询中使用主键索引时,它还允许对数据的快速访问。

聚集索引:在聚集索引中,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。,聚集索引比非聚集索引提供更快的数据访问速度。举例:聚集索引:字典中的默认按字母顺序排序;非聚集索引:字典中按偏旁部首定位某个生僻字。

提示:尽管唯一索引有助于定位信息,但为获得最佳性能结果,建议改用主键或唯一约束。

  1. 索引的创建方法
CREATE INDEX mytable_categoryid ON mytable (category_id);
CREATE INDEX mytable_categoryid_userid ON mytable(category_id,user_id);

只要数据库认为可以使用某个已经创建的索引,索引就会自动运用。

create index idx_emp_ename on EMP(ename);         
select *from EMP where ename='SMITH';
  1. 索引的内部原理

数据库索引详解

深入浅出数据库索引原理

B+tree 是一个n叉树,每个节点有多个叶子节点,一颗B+树包含根节点,内部节点,叶子节点。根节点可能是一个叶子节点,也可能是一个包含两个或两个以上叶子节点的节点。所有的叶子结点中包含了全部关键字的信息,及指向含这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。

由于B+tree的性质, 它通常被用于数据库和操作系统的文件系统中。NTFS, ReiserFS, NSS, XFS, JFS, ReFS 和BFS等文件系统都在使用B+树作为元数据索引,
因为B+树的特点是能够保持数据稳定有序,其插入与修改拥有较稳定的对数时间复杂度(B+ 树元素自底向上插入)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值