问题
某天突然收到预警邮件,服务器CPU超过阈值,并且一直持续居高不下
分析原因
- 使用
htop
查看资源消耗,按照CPU使用率降序排列,发现都是mysqld进程占用CPU很高 - 进入mysql命令行使用
show processlist;
查看当前正在执行的命令,经过多次执行show processlist
发现有几条固定的sql一直在执行,并且每次传递的参数害不一样
2021年7月20日大约 2 分钟
某天突然收到预警邮件,服务器CPU超过阈值,并且一直持续居高不下
htop
查看资源消耗,按照CPU使用率降序排列,发现都是mysqld进程占用CPU很高show processlist;
查看当前正在执行的命令,经过多次执行show processlist
发现有几条固定的sql一直在执行,并且每次传递的参数害不一样背景:
最近在改一个老项目,其中使用到框架是mybatis,有一个业务表
install_record
,代表装机记录,一个accessory
代表备件表,一个sys_file
代表文件表,业务关系是一个install_record对应多个accessory、以及多个sys_file,在一开始使用的是mybatis的嵌套查询的方式,但此方式有N+1的问题,比如一个装机表对应10个accessory、20个sys_file,则就要查询1+10+20 = 31次数据库,效率是很低的,因此想改成嵌套查询的方式。
背景:
我有一个库A,这个库同时被两个服务使用(serviceA、serviceB),某天,因serviceA业务需要,必须更改数据库结构,导致serviceB无法使用,但是serviceB又不能停机,所以就考虑把数据库克隆一份给serviceB使用。在克隆使用的是mysqldump直接导出,然后再新建另一个库B,在库B导入sql,结果就悲剧了。
# 在服务器把写了个定时备份脚本,这个databaseA是未更新前备份的库
mysqldump -h localhost -uroot -p123456 databaseA>databaseA.sql
该应用可以安装在你的 PC 或移动设备上。这将使该 Web 应用程序外观和行为与其他应用程序相同。它将在出现在应用程序列表中,并可以固定到主屏幕,开始菜单或任务栏。此 Web 应用程序还将能够与其他应用程序和你的操作系统安全地进行交互。