如何进行生产数据库性能优化的分析
发表于:2024-09-25 作者:千家信息网编辑
千家信息网最后更新 2024年09月25日,这期内容当中小编将会给大家带来有关如何进行生产数据库性能优化的分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。需求:在钉钉群个人简介页面需要显示钉钉群名称和简介,
千家信息网最后更新 2024年09月25日如何进行生产数据库性能优化的分析
这期内容当中小编将会给大家带来有关如何进行生产数据库性能优化的分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
需求:在钉钉群个人简介页面需要显示钉钉群名称和简介,每个群成员的别名,以及钉钉群主的个人签名信息。其中需求中所需信息存放在以下四个表中:user,user_profile,groups,user_group。
方案选择
方案1:
先看看最简单的实现方法,一条 SQL 语句搞定所有事情:
SELECT name,description,user_type,nick_name,sign FROM groups,user_group,user ,user_profile WHERE groups.id =? AND groups.id=user_group.group_id AND useruser_group.user_id=user.id AND useruser_profile.user_id=user.id
方案2:
通过稍微复杂一点的方法分两步搞定:
首先取得所有需要展示的 钉钉group 的相关信息和所有钉钉群组员的别名信息和组员类别:
SELECT name,description,user_type,nick_name FROM groups,user_group,user WHERE groups.id =? AND groups.id=user_group.group_id AND useruser_group.user_id=user.id
然后在程序中通过上面结果集中的 user_type 找到群主的 user_id 再到 user_profile 表中取得钉钉群主的个人签名信息:
SELECT sign FROM user_profile WHERE user_id =?
方案比较:
以上两种解决方案最大的区别在于交互次数和 SQL 复杂度。而带来的实际影响是第一种解决方案对 user_profile表有不必要的访问(非群主的 profile 信息),造成 IO 访问的直接增加在 20%左右。而在实际应用中,IO 操作在数据库应用系统中是非常昂贵的资源。尤其是当这个功能的 PV 较大的时候,第一种方案造成的 IO 损失是相当大的。
重复执行相同的 SQL 造成资源浪费这个问题其实很多人都知道,但是在应用系统开发过程中,仍然会常有这样的现象存在。究其原因,主要还是开发工程师思维中面向对象的概念太过深入,以及为了减少自己代码开发的逻辑和对程序接口过度依赖所造成的。
上述就是小编为大家分享的如何进行生产数据库性能优化的分析了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。
方案
信息
分析
数据
数据库
个人
应用
开发
性能
生产
复杂
内容
别名
实际
应用系统
方法
程序
简介
系统
组员
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发毕设网站
在软件开发中遇到的问题解决
网络安全与网络文化的理解
万方数据库有哪些杂志发表
网络安全产业规定
浏览器连接web服务器怎么交互
徐州软件开发公司哪个好
电子服务器的协议
mfc列表 数据库
软件开发公司财务面试问题
软件开发自主立项申请书
网络安全员培训大纲
架设手机游戏服务器
美音网络技术有限公司在哪里
基础软件开发和支撑软件开发服务
房地产网络技术部介绍
路由器复位后远端服务器无反应
我的世界一句话把一个服务器崩掉
未央区网络安全防护
陌陌总是显示服务器忙
安逸服务器
企业网络安全架构实验
mysql数据库申请
服务器安全管控
数据库书店管理系统ER图
访问用户数据库字段访问权限
基础软件开发和支撑软件开发服务
房地产网络技术部介绍
文献数据集和数据库的区别
oceanbase 高斯数据库