当前位置: 首页 > news >正文

简单的企业网站今日新闻摘抄二十条

简单的企业网站,今日新闻摘抄二十条,wordpress 不显示主题,合肥推广优化公司记一次sql查询优化 前言 这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱 今天测试环境发现一个问题,就是测试同事在测试的时候,发现cpu一直居高不下,然…

记一次sql查询优化

前言
这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。

作者:神的孩子都在歌唱

今天测试环境发现一个问题,就是测试同事在测试的时候,发现cpu一直居高不下,然后通过top命令发现,java应用程序和potgres数据库一直在占用cpu处理工作,所以我怀疑java应用请求数据库时间过长导致的,那么为什么请求那么长并且cpu一直增大呢,那应该和数据量有关了。

image-20240919151957003

果不其然,看了一眼数据库,发现有一张表里面有15万条数据,这是一张告警消息和内容的关联表warn_message_content,存储的是告警的消息内容。可是这点数据量也不应该出现这种情况的,然后我去开了一眼代码。

没优化前的sql写法如下

    <select id="query"resultMap="Results">SELECT t.*, (SELECT COUNT(*) FROM warn_message_content WHERE message_id =  #{query.messageId}) as countFROM warn_message_content tWHERE id = (SELECT MAX(id) FROM warn_message_content WHERE message_id =  #{query.messageId});</select>

根据上面sql,我们可以大概知道需求是什么,它是需要根据告警消息的messageId去关联表里面查找总数和最新一条告警内容

我们可以根据sql知道他需要检索的是message_id这个字段,所以去数据库里面查了一下,发现没有这个字段的索引,那肯定和这有关了.

CREATE INDEX idx_warn_message_content_message_id ON warn_message_content(message_id);

通过以上命令添加索引后,查询效率直接升到毫秒

image-20240919160845481

这样问题就解决了。

可是我们可以发现这条sql写的有些问题:

  • 多个子查询:查询中使用了多个子查询。首先是用于获取最大 id 的子查询,然后是用于计算总数的子查询。每次执行时,这些子查询可能会重复扫描 warn_message_content 表,导致性能问题。
  • 效率低:嵌套子查询通常会导致查询性能降低,特别是在数据量很大的情况下。数据库需要执行多个子查询并将结果合并,这会增加计算负担。

我们可以根据需求知道,他只需要根据消息messageId查询最新的一条告警内容,还有告警内容总数,这两个完全可以分开的,如下sql

-- 获取最大 ID
SELECT t.*
FROM warn_message_content t
WHERE message_id = #{query.messageId}
ORDER BY id DESC LIMIT 1;-- 获取记录总数
SELECT COUNT(*) AS count
FROM warn_message_content
WHERE message_id = #{query.messageId};

这样子分开不但能够避免多个子查询,还能够提高代码的可读性。

可是这样子还有个缺点,如果 warn_message_content 表在高频率写入时,没办法保证数据一致性。意思就是如果两个查询在不同的时间点执行,可能会导致 最新的告警内容COUNT(*) 查询结果不一致。解决方法是使用事务,可以确保查询的结果在同一个事务内保持一致。

作者:神的孩子都在歌唱

本人博客:https://blog.csdn.net/weixin_46654114

转载说明:务必注明来源,附带本人博客连接。

http://www.ds6.com.cn/news/6678.html

相关文章:

  • 嘉兴云建站模板济南网络优化网址
  • 唐山微信网站百度权重3的网站值多少
  • 垃圾网站设计优化关键词是什么意思
  • 百度网站做不做宁波做网站的公司
  • 自助做网站优化seo方法
  • 河北建筑工程学院招生网seo每天一贴
  • 网上哪里有辅导高考生做难题的网站今日新闻最新头条10条内容
  • 影响网站可用性的因素优化一个网站需要多少钱
  • 河南第一火电建设公司网站天津seo排名收费
  • 凡科网做的网站怎么样营销外包团队怎么收费
  • 去哪网站备案吗精品成品网站入口
  • vps 网站能打开seo推广有哪些方式
  • 网站建设成本分析新网站 seo
  • 免费视频网站怎么赚钱宁波seo咨询
  • 做网上夫妻去哪个网站手机百度识图网页版入口
  • 网站建设费一般摊销几年资源网站优化排名软件
  • 桂林互联网株洲企业seo优化
  • 创建个人网站教程兰蔻搜索引擎营销案例
  • 南宁百度网站建设公司哪家好百度2018旧版下载
  • wordpress站点logoseo排名赚挂机赚钱软件下载
  • 长春长春网站建设网最近刚发生的新闻
  • 建设网站需要注意什么天津百度seo排名优化
  • 泰安网站开发哪家便宜app拉新推广怎么做
  • 做公司网站别人能看到吗站长网站seo查询
  • 网站开发需要的工具进入百度搜索首页
  • 怎建立自己网站做淘宝客百度账号
  • 济南设计网站的公司西安seo服务公司
  • 永嘉县住房和城乡规划建设局网站网络营销与直播电商是干什么的
  • 做网站细节谷歌广告推广网站
  • 网站加百度商桥如何网上销售自己的产品