教你七步优化数据库

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

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

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

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

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

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

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  用于执行查询的资源消耗

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
相关文章
|
12月前
|
存储 人工智能 NoSQL
AI大模型应用实践 八:如何通过RAG数据库实现大模型的私有化定制与优化
RAG技术通过融合外部知识库与大模型,实现知识动态更新与私有化定制,解决大模型知识固化、幻觉及数据安全难题。本文详解RAG原理、数据库选型(向量库、图库、知识图谱、混合架构)及应用场景,助力企业高效构建安全、可解释的智能系统。
|
关系型数据库 MySQL 数据库连接
Django数据库配置避坑指南:从初始化到生产环境的实战优化
本文介绍了Django数据库配置与初始化实战,涵盖MySQL等主流数据库的配置方法及常见问题处理。内容包括数据库连接设置、驱动安装、配置检查、数据表生成、初始数据导入导出,并提供真实项目部署场景的操作步骤与示例代码,适用于开发、测试及生产环境搭建。
694 1
|
12月前
|
SQL 存储 监控
SQL日志优化策略:提升数据库日志记录效率
通过以上方法结合起来运行调整方案, 可以显著地提升SQL环境下面向各种搜索引擎服务平台所需要满足标准条件下之数据库登记作业流程综合表现; 同时还能确保系统稳健运行并满越用户体验预期目标.
518 6
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
1992 5
|
机器学习/深度学习 SQL 运维
数据库出问题还靠猜?教你一招用机器学习优化运维,稳得一批!
数据库出问题还靠猜?教你一招用机器学习优化运维,稳得一批!
621 4
|
SQL 关系型数据库 MySQL
如何优化SQL查询以提高数据库性能?
这篇文章以生动的比喻介绍了优化SQL查询的重要性及方法。它首先将未优化的SQL查询比作在自助餐厅贪多嚼不烂的行为,强调了只获取必要数据的必要性。接着,文章详细讲解了四种优化策略:**精简选择**(避免使用`SELECT *`)、**专业筛选**(利用`WHERE`缩小范围)、**高效联接**(索引和限制数据量)以及**使用索引**(加速搜索)。此外,还探讨了如何避免N+1查询问题、使用分页限制结果、理解执行计划以及定期维护数据库健康。通过这些技巧,可以显著提升数据库性能,让查询更高效流畅。
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
687 158
|
关系型数据库 MySQL 数据库
自建数据库如何迁移至RDS MySQL实例
数据库迁移是一项复杂且耗时的工程,需考虑数据安全、完整性及业务中断影响。使用阿里云数据传输服务DTS,可快速、平滑完成迁移任务,将应用停机时间降至分钟级。您还可通过全量备份自建数据库并恢复至RDS MySQL实例,实现间接迁移上云。
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1814 152

热门文章

最新文章