数据库技术-数据库索引

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

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

索引技术分类

有序索引

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

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


散列索引

哈希(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







相关文章
|
3月前
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
85 3
|
3月前
|
数据库 索引
深入理解数据库索引技术:回表与索引下推详解
【10月更文挑战第23天】 在数据库查询性能优化中,索引的使用是提升查询效率的关键。然而,并非所有的索引都能直接加速查询。本文将深入探讨两个重要的数据库索引技术:回表和索引下推,解释它们的概念、工作原理以及对性能的影响。
132 3
|
10天前
|
SQL 存储 关系型数据库
【SQL技术】不同数据库引擎 SQL 优化方案剖析
不同数据库系统(MySQL、PostgreSQL、Doris、Hive)的SQL优化策略。存储引擎特点、SQL执行流程及常见操作(如条件查询、排序、聚合函数)的优化方法。针对各数据库,索引使用、分区裁剪、谓词下推等技术,并提供了具体的SQL示例。通用的SQL调优技巧,如避免使用`COUNT(DISTINCT)`、减少小文件问题、慎重使用`SELECT *`等。通过合理选择和应用这些优化策略,可以显著提升数据库查询性能和系统稳定性。
64 9
|
1月前
|
存储 运维 OLAP
【Meetup回顾 第1期】竟是这样的国产数据库,YashanDB技术内幕曝光
YashanDB是一款基于统一内核,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景的新型数据库系统;YashanDB同时提供开发平台、运维平台和迁移平台3大工具平台以满足数据全生命周期管理。
34 2
【Meetup回顾 第1期】竟是这样的国产数据库,YashanDB技术内幕曝光
|
1月前
|
关系型数据库 分布式数据库 数据库
1月17日|阿里云云谷园区,PolarDB V2.0技术沙龙,畅聊国产数据库
为了助力国产化项目顺利推进,阿里云邀请企业开发者和数据库负责人到云谷园区,与PolarDB V2.0技术专家面对面交流。扫描海报二维码报名,我们将根据信息为您申请入园。欢迎参与,共同探讨PolarDB的最新技术和应用!
|
2月前
|
人工智能 物联网 大数据
解密时序数据库的未来:TDengine Open Day技术沙龙精彩回顾
在数字化时代,开源已成为推动技术创新和知识共享的核心力量,尤其在数据领域,开源技术的涌现不仅促进了行业的快速发展,也让更多的开发者和技术爱好者得以参与其中。随着物联网、工业互联网等技术的广泛应用,时序数据库的需求愈发强烈,开源的兴起更是为这一技术的创新与普及提供了强有力的支持。
45 3
|
2月前
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
82 15
|
3月前
|
负载均衡 网络协议 数据库
选择适合自己的数据库多实例负载均衡技术
【10月更文挑战第23天】选择适合自己的数据库多实例负载均衡技术需要全面考虑多种因素。通过深入的分析和评估,结合自身的实际情况,能够做出明智的决策,为数据库系统的高效运行提供有力保障。
151 61
|
2月前
|
存储 缓存 数据库
数据库索引采用B+树不采用B树的原因?
B+树优化了数据存储和查询效率,数据仅存于叶子节点,便于区间查询和遍历,磁盘读写成本低,查询效率稳定,特别适合数据库索引及范围查询。
57 6
|
3月前
|
存储 缓存 数据库
数据库索引采用B+树不采用B树的原因
B+树相较于B树,在数据存储、磁盘读写、查询效率及范围查询方面更具优势。数据仅存于叶子节点,便于高效遍历和区间查询;内部节点不含数据,提高缓存命中率;查询路径固定,效率稳定;特别适合数据库索引使用。
53 1

热门文章

最新文章