数据库技术-数据库索引

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

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

索引技术分类

有序索引

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

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


散列索引

哈希(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月前
|
SQL Java 数据库连接
除了JDBC,还有哪些常见的数据库访问技术?
除了JDBC,还有哪些常见的数据库访问技术?
321 2
|
6月前
|
存储 关系型数据库 MySQL
MySQL数据库索引的数据结构?
MySQL中默认使用B+tree索引,它是一种多路平衡搜索树,具有树高较低、检索速度快的特点。所有数据存储在叶子节点,非叶子节点仅作索引,且叶子节点形成双向链表,便于区间查询。
205 4
|
9月前
|
Cloud Native 关系型数据库 分布式数据库
|
4月前
|
监控 Java 关系型数据库
HikariCP 高性能数据库连接池技术详解与实践指南
本文档全面介绍 HikariCP 高性能数据库连接池的核心概念、架构设计和实践应用。作为目前性能最优异的 Java 数据库连接池实现,HikariCP 以其轻量级、高性能和可靠性著称,已成为 Spring Boot 等主流框架的默认连接池选择。本文将深入探讨其连接管理机制、性能优化策略、监控配置以及与各种框架的集成方式,帮助开发者构建高性能的数据访问层。
366 8
|
4月前
|
监控 Java 关系型数据库
HikariCP 高性能数据库连接池技术详解与实践指南
本文档全面介绍 HikariCP 高性能数据库连接池的核心概念、架构设计和实践应用。作为目前性能最优异的 Java 数据库连接池实现,HikariCP 以其轻量级、高性能和可靠性著称,已成为 Spring Boot 等主流框架的默认连接池选择。本文将深入探讨其连接管理机制、性能优化策略、监控配置以及与各种框架的集成方式,帮助开发者构建高性能的数据访问层。
259 1
|
10月前
|
Cloud Native 关系型数据库 分布式数据库
登顶TPC-C|云原生数据库PolarDB技术揭秘:Limitless集群和分布式扩展篇
阿里云PolarDB云原生数据库在TPC-C基准测试中以20.55亿tpmC的成绩刷新世界纪录,展现卓越性能与性价比。其轻量版满足国产化需求,兼具高性能与低成本,适用于多种场景,推动数据库技术革新与发展。
|
9月前
|
存储 关系型数据库 分布式数据库
|
9月前
|
存储 关系型数据库 分布式数据库
|
4月前
|
SQL 数据管理 BI
数据库操作三基石:DDL、DML、DQL 技术入门指南
本文围绕数据库操作核心语言 DDL、DML、DQL 展开入门讲解。DDL 作为 “结构建筑师”,通过CREATE(建库 / 表)、ALTER(修改表)、DROP(删除)等命令定义数据库结构;DML 作为 “数据管理员”,以INSERT(插入)、UPDATE(更新)、DELETE(删除)操作数据表记录,需搭配WHERE条件避免误操作;DQL 作为 “数据检索师”,通过SELECT结合WHERE、ORDER BY、LIMIT等子句实现数据查询与统计。三者相辅相成,是数据库操作的基础,使用时需注意 DDL 的不可撤销性、DML 的条件约束及 DQL 的效率优化,为数据库学习与实践奠定基础。
|
5月前
|
缓存 关系型数据库 MySQL
MySQL数据库性能调优:实用技术与策略
通过秉持以上的策略实施具体的优化措施,可以确保MySQL数据库的高效稳定运行。务必结合具体情况,动态调整优化策略,才能充分发挥数据库的性能潜力。
234 0

热门文章

最新文章