数据库系统优化--业务逻辑设计优化

数据库系统优化--业务逻辑设计优化,第1张

IT 技术分析

当我们优化一个系统时 有时发现一种情况就是自己修改SQL 索引以及分区是不能解决性能问题的 这时你要考虑业务逻辑优化和表设计的重构 这两点的确和设计结合的很紧密

业务逻辑优化

结合实际 我们先谈谈业务逻辑优化

案例一

我们的系统一个文档模块 客户点击时很慢 通过性能分析 是点击是去查询数据库 这时系统是通过Hibernate来两步处理

计算该类型的文档数量总数

显示最新文档的前 篇文档

这时显示第二步的时间是很快的 只取 条记录 但是计算该类型的所有总数很慢 系统的这时的输入是很大的(计算该类型的全部文档 可能有几万篇数据) 输出就一条总数 这时因为业务逻辑复杂 即使建立索引 分区等等速度也是无法提高 因为不能真正做到索引覆盖和分区消除

客户是点一下要等十几秒是不能容忍的 这时可能输入数据量很大下 数据库很可能采用的是hash联结 而且并发用户一大 数据库服务器压力很大

这时常规的优化方法是没有效果的 这时我们也发现 客户其实对以前比较老的数据是不关心的 一般只是对近期的数据比较感兴趣 所有我们就在查询时默认设定半年的时间 然后在时间上设定聚集索引 并默认在此时间上排序 使其使用合并联结 减少输入数据量 结果速度有明显的提升

案例二

我们在优化一个客户系统时 碰到一种情况 在客户的一选择功能时 客户点击一下选择相关数据 这时页面要要几分钟才能出来 客户很不满意 这时修改sql和索引都没有办法 他的输入的数据量也很大 和上面一下也要计算总数和取最新前几条数据

这时我们在查询是关联了人员 通过调查 发现客户只对和自己相关的数据感兴趣 也只是查询自己相关的数据 所以这时在sql语句里增加用户id这条限制 同时在增加userid的索引 这样一来 速度就大大提高

总结

当然以上两个案例 是从输入入手 减少输入和输出的数据量 主要优化业务逻辑 达到优化系统 当然有些情况要和客户确认和说服他们 有时他们不一定都认可 这时要说明这样做的目的 相信他们也会理解

表设计优化

表设计 在我们开发系统时已经确定 好的设计的确能大大提高性能 我们在优化系统时 碰到一个比较麻烦的问题

原文 数据库重构(一) 字段合并

这条sql是判断 个维度 一个用户id 一个机构id 一个岗位id 还有级别判断和是否公共 sql语句里有 个 or 组成查询 表数据一大就表扫描 性能很差 但业务要求和系统要求这样判断 即使在表中这五个字段都建索引 速度也不会快 太多 OR 了 SQL Server 查询分析器无法优化

这时由于设计时 用户id 机构id 岗位id为 个只有一个有数据 所以将这 个字段合并 较少 Or 语句 让数据库能使用索引

总结

lishixinzhi/Article/program/SQL/201311/16321

若表比较多,每一个表里面的数据比较多的话,若在查询数据 Where aColName1=bColName1 and bColName2=cColName2……等查询语句的时候,会导致速度比较慢

这样最好对这些关联字段ColNam1,ColNam2……等字段增加索引,能明显加快查询速度。

在进行软件开发过程中,数据库的使用是非常重要的,但是数据库有很多种,不同数据库的使用方法是不同的。

进行软件开发过程中,至少需要掌握一种数据库的使用方法。

SQL数据库语法简单、 *** 作方便和高效,是很多人最优的选择,但是SQL语句会受到不同数据库功能的影响,在计算时间和语言的效率上面需要进行优化,根据实际情况进行调整。

下面电脑培训为大家介绍SQL数据库的优化方法。

一、适当的索引索引基本上是一种数据结构,有助于加速整个数据检索过程。

唯一索引是创建不重叠的数据列的索引。

正确的索引可以更快地访问数据库,但是索引太多或没有索引会导致错误的结果。

IT培训认为如果没有索引,处理速度会变得非常慢。

二、仅索引相关数据指定需要检索数据的精度。

使用命令和LIMIT代替SELECT。

调整数据库时,必须使用所需的数据集而不是整个数据集,尤其是当数据源非常大时,指定所需的数据集,能够节省大部分时间。

三、根据需求使用或避免临时表如果代码可以用简单的方式编写,那么永远不要使临时表变得复杂。

当然,如果数据具有需要多个查询的特定程序,北大青鸟建议在这种情况下,使用临时表。

临时表通常由子查询交替。

四、避免编码循环避免编码循环是非常重要的,因为它会减慢整个序列的速度。

通过使用具有单行的唯一UPDATE或INSERT命令来避免编码循环,并且洛阳北大青鸟发现WHERE命令能够确保存储的数据不被更新,这样能够方便在找到匹配和预先存在的数据时被找到。

以上就是关于数据库系统优化--业务逻辑设计优化全部的内容,包括:数据库系统优化--业务逻辑设计优化、如何设计、优化 多个 多对多的数据库表、北大青鸟设计培训:SQL数据库优化的方法有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9393502.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存