1. 需求的不合理造成的性能问题
比方说,不需要实时更新的内容,被要求做成实时更新
2. 架构的不合理造成的性能问题
比方说,不适合数据库保存的数据,被存放在数据库中
或者,频繁访问但是很少变更的数据,没有做缓存
3. 查询语句的不合理造成的性能问题
比方说,重复执行相同的 SQL 会造成资源浪费
或者,大量复杂的 join 语句会导致查询效率低下
4. 数据库设计的不合理造成的性能问题
比方说,盲目追求三范式、四范式,有时候并没有必要
5. 硬件配置的不合理造成的性能问题
比方说,数据库服务器的 io 性能、CPU 、网络状况,都会影响性能
以上这些都是性能问题定位和调优的方向
研发创建了存储过程,需要部署定时任务,在上线前进行检查,执行定时脚本时,出现了如下报错
ERROR: [SQLCODE] 1055 , [SQLSTATE] 42000 , [MESSAGE] Expression #1 of ORDER BY clause is not in GROUP BY
此时查看sql_mode,发现里面没有only_full_group_by,但是执行还会报错,怀疑是链接没断开,当前session没生效,断开重连还是一样的报错
遂查看存储过程 show create procedure dataabase.procname
发现创建之前的sql_mode有only_full_group_by,为了能正常运行,在当前模式下,删除新建存储过程,即可重新调用,执行成功。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)