数据库技术-数据库索引

简介: 数据库技术-数据库索引

上一篇文章我们在文末介绍了数据库物理设计的索引,本文我们继续介绍数据库的物理设计

索引技术分类

有序索引

索引文件机制,利用索引文件(索引记录组成)实现记录域(查找码,排序域)取值到记录物理地址间的映射关系。

数据文件(主文件)和索引文件(索引记录或索引项的集合)是有序索引技术中的两个主体,数据文件常采用顺序文件结构。


散列索引

哈希(Hash)索引机制,利用散列函数实现记录域取值到记录物理地址间的直接映射关系。


几种主要的有序索引

(1)聚集索引(索引项与数据记录排列顺序一致,索引顺利文件)和非聚集索引。一个数据文件只可建立一个聚集索引,但可建立多个非聚集索引。

(2)稠密索引(数据文件中每个查找码都对应索引么记录)和稀疏索引(部分查找码的值对应索引记录)。

(3)主索引(主码属性集上建立的索引)与辅索引(非主属性上建立的索引)。

(4)唯一索引(索引列不包含重复值)

(5)单层索引(线性索引,每个索引项顺序排列直接指向数据文件中的数据记录)和多层索引(大数据量文件中的采用多层树型(B,B+树)索引快速定位)。


数据库物理设计的目标

目标是得到存储空间占用少,数据访问效率高和维护代价低的数据库物理模式。数据库底层物理存储与存取,与DBS所依赖的硬件环境、操作系统和DBMS密切相关。目前绝大部分DBS都是关系数据库系统。

环节

数据库物理设计主要包括5个环节。


(1)数据库逻辑模式描述

根据数据库逻辑结构信息设计目标DBMS可支持的关系表(这里称为基本表)的模式信息,这个过程称为数据库逻辑模式描述。

关系模式及其视图转换成基本表和视图,利用完整性机制(如触发器)设计面向应用的业务规则。

SQL Server 采用T-SQL语言。

为基本表选择合适的文件结构(堆文件、顺序文件、聚集文件、索引文件和散列文件)。


(2)文件组织与存取设计

基本原则

根据应用情况将易变部分与稳定部分、存取频率较高部分与存取频率较低部分分开存放,以提高系统性能。

分析理解数据库事务访问特性:使用事务-基本表交叉引用矩阵;估计各事务执行频率;汇总每张基本表各事务操作频率信息;根据结果设计文件结构。


注意:可以考虑将表和索引分别放在不同的磁盘上。在查询时,由于两个磁盘驱动器分别在工作,因而可以保证物理读写速度比较快。


影响数据文件存储结构的因素

存取时间

存储空间利用率

维护代价

这三个方面常常是相互矛盾的

解决办法

适当冗余

增加聚簇功能

必须进行权衡,选择一个折中方案。


什么是存储路径


在关系数据库中,选择存取路径主要指确定如何建立索引。

对同一个关系要建立多条存取路径才能满足多用户的多种应用要求。

物理设计的第一个任务就是要确定选择哪些存取方法。


DBMS常用存取方法

索引方法,目前主要是B+树索引方法

聚簇(Cluster)方法

HASH方法


建立索引原则

一个(组)属性经常在操作条件中出现。

一个(组)属性经常在连接操作的连接条件中出现。

一个(组)属性经常作为聚集函数的参数。


建立聚集索引原则

检索数据时,常以某个(组)属性作为排序、分组条件。

检索数据时,常以某个(组)属性作为检索限制条件,并返回大量数据。

表中某个(组)的值重复性较大。


(3)数据分布设计

不同类型数据的物理分布

将应用数据(基本表)、索引、日志、数据库备份数据等合理安排在不同介质中。


应用数据的划分与分布

根据数据的使用特征划分(频繁使用分区和非频繁使用分区)

根据时间、地点划分(时间或地点相同的属于同一分区)

分布式数据库系统(DDBS)中的数据划分(水平划分或垂直划分)

派生属性数据分布(增加派生列或不定义派生属性)

关系模式的去规范化(降低规范化提高查询效率)


水平划分

将基本表划分为多张具有相同属性、结构完全相同的子表,子表包含的元组是基本表中元组的子集。

例如,对商品按照商品的生产年份进行划分就属于水平划分。


垂直划分

将基本表划分为多张子表,每张子表包含的属性是原基本表的子集。

例如,商品表(商品编号、品名、单价、库存量、销售单价、备注)

可垂直划分为两张子表:

商品表(商品编号、品名、销售单价)

商品表(商品编号、单价、库存量、备注)


image.png


(5)物理模式评估

对数据库物理设计结果从存取时间、存储空间、维护代价等方面进行评估,重点是时间和空间效率。

如果评价结果满足原设计要求则可进入到物理实施阶段,否则,就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型。


image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png







相关文章
|
17天前
|
数据库 索引
数据库索引的作用和优点缺点
数据库索引的作用和优点缺点
13 1
|
28天前
|
Cloud Native OLAP OLTP
在业务处理分析一体化的背景下,开发者如何平衡OLTP和OLAP数据库的技术需求与选型?
在业务处理分析一体化的背景下,开发者如何平衡OLTP和OLAP数据库的技术需求与选型?
126 4
|
1月前
|
Cloud Native 关系型数据库 分布式数据库
开发者视角看云原生数据库一体化技术趋势
随着云原生数据库技术的不断发展,一体化数据库解决方案成为技术圈的热点,云原生数据库一体化技术是当前数据库领域的重要趋势,对于开发者而言,学习理解和应对这一趋势,对于业务开发的成功实施非常重要。比如,阿里云瑶池数据库和PolarDB-X等产品通过离在线一体化、处理分析一体化和集中分布一体化等创新理念,引领了数据库领域的新变革。那么本文就来从开发者的角度探讨云原生数据库一体化技术趋势,并分析在业务处理分析一体化、集中式与分布式数据库边界模糊和云原生一体化数据库的选择等方面的影响。
190 4
|
1月前
|
SQL 缓存 PHP
PHP技术探究:优化数据库查询效率的实用方法
本文将深入探讨PHP中优化数据库查询效率的实用方法,包括索引优化、SQL语句优化以及缓存机制的应用。通过合理的优化策略和技巧,可以显著提升系统性能,提高用户体验,是PHP开发者不容忽视的重要议题。
|
1月前
|
存储 数据管理 数据处理
数据之光:探索数据库技术的演进之路
数据之光:探索数据库技术的演进之路
60 1
|
1月前
|
存储 搜索推荐 关系型数据库
深度探讨数据库索引的数据结构及优化策略
深度探讨数据库索引的数据结构及优化策略
|
1月前
|
存储 关系型数据库 MySQL
最全MySQL面试60题(含答案):存储引擎+数据库锁+索引+SQL优化等
最全MySQL面试60题(含答案):存储引擎+数据库锁+索引+SQL优化等
178 0
|
15天前
|
存储 中间件 关系型数据库
数据库切片大对决:ShardingSphere与Mycat技术解析
数据库切片大对决:ShardingSphere与Mycat技术解析
24 0
|
28天前
|
SQL 关系型数据库 MySQL
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
96 0
|
2天前
|
SQL Java 数据库连接
Java从入门到精通:2.3.1数据库编程——学习JDBC技术,掌握Java与数据库的交互
ava从入门到精通:2.3.1数据库编程——学习JDBC技术,掌握Java与数据库的交互

热门文章

最新文章