一、背景
数据库sql问题往往会引发性能问题,如数据库cpu被打满 同时触发了生产数据库只读延迟的限定时间并且发出告警,而且告警的过程持续了半个小时,系统反应缓慢
二、解决方法
表结构建立相关的索引 一般都是“最左匹配” 原则,最左边的那边的字段如果没有数据,则走全表扫描功能 最左边字段只要有值就可以走索引
为空的校验
虽然加上该注解来做非空校验,但我却没有在参数加上另一个注解@Validated,该注解如果没加上的话,那么调用javax包下的校验规则就都不生效,正确的写法是在controller层方法的参数前面加上注解:
sql语句要优先做性能测试
对于数据量大的表,建好索引后,所有的SQL查询语句要用explain检测性能,并且根据结果来进一步优化索引。