教你七步优化数据库

本文涉及的产品
数据管理 DMS,安全协同 3个实例 3个月
推荐场景:
学生管理系统数据库
简介: 用户现在不仅需要更复杂和灵活的分析,还需要更及时的信息——数据必须全天候可用,并且在许多业务中用户要求在事件发生的几小时内(在某些情况下,几分钟甚至几秒)内可以访问支持决策的数据。公司还意识到,许多不同的流程需要使用相同的数据,因此需要使用不同的配置文件。

       用户现在不仅需要更复杂和灵活的分析,还需要更及时的信息——数据必须全天候可用,并且在许多业务中用户要求在事件发生的几小时内(在某些情况下,几分钟甚至几秒)内可以访问支持决策的数据。公司还意识到,许多不同的流程需要使用相同的数据,因此需要使用不同的配置文件。

       理想情况下,公司应在功能中立的数据模型中以尽可能小的形式保留详细数据,这可以让商业公司可以从广泛的观点和流程中提出任意数量的问题。基本前提是:始终可以聚合明细数据,但永远不能分解摘要数据。这并不意味着你永远不应使用摘要表;相反,它意味着您不应仅用摘要数据替换明细数据。

       如果所需分析需要明细数据,则无论技术如何,仅使用摘要表将会失败。实施者和用户必须共同努力,以了解业务需求及其驱动因素;然后他们需要使用最低侵入性的过程来满足这些要求。

       构建摘要表,添加索引,强制执行优先级和非规范化数据的主要原因是提高性能。如果您可以使用任意数量的数据来提出任何问题,并获得即时响应,那么您将永远不需要构建摘要或索引。

       这些结构可以作为其他限制情况的解决方法。它们的存在需要更多的空间、数据管理以及事件发生和采取有效行动之间的时间。问题是:如何在提高性能、最小化数据复制和数据管理之间取得平衡。

359.jpg

优化的七个步骤

一、从中性数据模型开始,该模型被规范化并且不特定于任何函数或组

l  提供支持业务目标所需的最低级别的详细信息

l  通过定义的详细程度解决未来需求

l  使用定义详细信息表的视图以获得安全性和并发性

l  启用访问视图,允许对正在更新的表进行选择(无意图读取)以避免锁定问题

二、实现视图以简化导航

l  帮助工具使用第三方工具和操作视图以创建更好的结构化查询语言(SQL)

l  提供前端工具可能需要的结构,以创建优化的SQL并消除对前端工具的依赖,了解市场上的每个数据库

l  在视图中嵌入优化的连接技术

l  为表格集成一层安全性

l  为每个业务部门提供其自己的逻辑功能化- 以用户希望看到的方式呈现数据

l  允许数据存储一次,然后通过视图转换,减少数据冗余,确保一致性并简化数据管理

三、添加索引,范围从简单的技术(如二级索引)到复杂的结构(如覆盖索引,连接索引或聚合索引)

l  提供一个主要优点,因为系统与基础数据表在同时维护它们

l  为索引附加一些开销,因此要知道影响和权衡,并在成本与收益分析中识别它们

四、使用数据库优先级框架强制确定优先级,以便在必要时使用资源保护关键的工作负载

l  优化SQL后,优化索引和视图结构

l  提供更佳的可用容量使用,但不能提供更多容量

l  提供对工作负载的更好理解

l  系统拥挤时吸引人注意;在拥挤时代,要有优先级

l  让商业公司提供优先方向

五、只有当对更高性能的需求超过分析灵活性时,才进行理性总结和非规范化

l  遵循共存而非替换的策略,保留详细信息表以进行扩展分析,同时添加非规范化结构

l  满足多种需求,可以为各种用户和部门提供服务,证明管理成本合理

l  满足用户社区的更大利益而不要坚持功能目的

l  数据量和波动率的结果在成本效益分析中起着重要作用

 

六、考虑“非理性”摘要和非规范化来定制特定业务流程或报告的数据模型

l  当期望的性能超过灵活分析的需求时,需要结构来解决单个功能时

l  在考虑成本效益分析时,包括更高的数据管理和资源成本

l  通过维护基础细节数据来最小化影响;当条件在未来发生变化时,这种不合理的结构可以在几乎没有影响的情况下消除

       如果您还没有达到预期的性能,那么还有一个步骤。但是,它的成本相对较高。因此,在继续之前,请确保预期的业务价值将超过使提取的数据与明细数据保持一致所需的额外数据移动和管理的成本。

七、探索,扩展和导出

l  探索答案集的业务使用情况,并验证业务成果的变化是否会推动预期的收入增长或成本降低,具体取决于应用程序。企业用户是否愿意支持这些期望,并且增强的性能是否能够证明成本合理?

l  展开当前平台。性能要求是否至关重要,以确保新容量?

l  将数据从主数据仓库导出到特定于应用程序的平台。在这种情况下,专门针对其应用调整的专用环境将提供对单个应用程序的更多控制。请记住重复数据的所有成本,增加时间延迟,以及需要管理和支持的新平台、软件环境的成本。

反证以上步骤

       采取这七个步骤需要了解每个步骤所涉及的成本以及这样做带来的好处。它还需要做出支持长期和短期需求的决策。在某些情况下,您可以创建摘要表或添加后来会丢弃的非规范化数据模型。只要丢弃表不会导致中断或大量应用程序更改,这是可以接受的。确保这一点的一种方法是尽可能避免使用汇总或非规范化表作为更多下游应用程序的输入。

       在应用这七个步骤时,对每个提议的步骤执行成本效益分析,包括物理方面,例如磁盘空间,管理结构的资源以及由于时间延迟而导致维护机会丢失。

可以从下面几处考虑改进:

l  查询性能和响应速度

l  用户并发率

l  吞吐量

l  用户满意度和生产力

l  利用第三方工具

l  用于执行查询的资源消耗

相关实践学习
MySQL基础-学生管理系统数据库设计
本场景介绍如何使用DMS工具连接RDS,并使用DMS图形化工具创建数据库表。
相关文章
|
4天前
|
消息中间件 缓存 监控
优化微服务架构中的数据库访问:策略与最佳实践
在微服务架构中,数据库访问的效率直接影响到系统的性能和可扩展性。本文探讨了优化微服务架构中数据库访问的策略与最佳实践,包括数据分片、缓存策略、异步处理和服务间通信优化。通过具体的技术方案和实例分析,提供了一系列实用的建议,以帮助开发团队提升微服务系统的响应速度和稳定性。
|
4天前
|
消息中间件 缓存 监控
优化微服务架构中的数据库访问:策略与实践
随着微服务架构的普及,如何高效管理和优化数据库访问成为了关键挑战。本文探讨了在微服务环境中优化数据库访问的策略,包括数据库分片、缓存机制、异步处理等技术手段。通过深入分析实际案例和最佳实践,本文旨在为开发者提供实际可行的解决方案,以提升系统性能和可扩展性。
|
1天前
|
缓存 关系型数据库 数据库
如何优化 PostgreSQL 数据库性能?
如何优化 PostgreSQL 数据库性能?
9 2
|
9天前
|
关系型数据库 MySQL 测试技术
《性能测试》读书笔记_数据库优化
《性能测试》读书笔记_数据库优化
21 7
|
15天前
|
SQL 关系型数据库 分布式数据库
PolarDB Proxy配置与优化:提升数据库访问效率
【9月更文挑战第6天】PolarDB是阿里云推出的高性能分布式关系型数据库,PolarDB Proxy作为其关键组件,位于客户端与PolarDB集群间,负责SQL请求的解析与转发,并支持连接池管理、SQL过滤及路由规则等功能。本文详细介绍了PolarDB Proxy的配置方法,包括连接池、负载均衡和SQL过滤设置,并探讨了监控调优、缓存及网络优化策略,以帮助提升数据库访问效率。
24 1
|
15天前
|
存储 关系型数据库 MySQL
如何优化数据库查询?
如何优化数据库查询?
37 1
|
8天前
|
存储 负载均衡 数据库
探索后端技术:从服务器架构到数据库优化的实践之旅
在当今数字化时代,后端技术作为支撑网站和应用运行的核心,扮演着至关重要的角色。本文将带领读者深入后端技术的两大关键领域——服务器架构和数据库优化,通过实践案例揭示其背后的原理与技巧。无论是对于初学者还是经验丰富的开发者,这篇文章都将提供宝贵的见解和实用的知识,帮助读者在后端开发的道路上更进一步。
|
4天前
|
NoSQL 关系型数据库 MySQL
微服务架构下的数据库选择:MySQL、PostgreSQL 还是 NoSQL?
在微服务架构中,数据库的选择至关重要。不同类型的数据库适用于不同的需求和场景。在本文章中,我们将深入探讨传统的关系型数据库(如 MySQL 和 PostgreSQL)与现代 NoSQL 数据库的优劣势,并分析在微服务架构下的最佳实践。
|
6天前
|
存储 SQL 关系型数据库
使用MySQL Workbench进行数据库备份
【9月更文挑战第13天】以下是使用MySQL Workbench进行数据库备份的步骤:启动软件后,通过“Database”菜单中的“管理连接”选项配置并选择要备份的数据库。随后,选择“数据导出”,确认导出的数据库及格式(推荐SQL格式),设置存储路径,点击“开始导出”。完成后,可在指定路径找到备份文件,建议定期备份并存储于安全位置。
69 11
|
25天前
|
弹性计算 关系型数据库 数据库
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!点击阅读原文完成实验就可获得一本日历哦~