0
点赞
收藏
分享

微信扫一扫

关于日常开发中的一些小的SQL优化建议

优化建议:

  1. 索引优化:根据查询条件和连接条件创建索引,可以提高查询性能(有连表查询时,连表关联字段添加上索引)。
  2. 子查询优化:将子查询改为连接查询,可以提高查询性能。具体可以考虑将es_info_relation_owner表的子查询改为连接查询。
  3. 避免使用DISTINCT关键字:如果查询结果中有重复的记录,可以考虑使用GROUP BY来替代DISTINCT,可以提高查询性能。
  4. 避免使用IFNULL函数:可以考虑使用COALESCE函数来替代IFNULL函数,COALESCE函数在MySQL中的性能更好。

SELECT COALESCE(null,null,'测试'); -- 结果:测试

  1. 避免在WHERE子句中使用函数:可以将函数的结果保存到变量中,然后在WHERE子句中使用变量,可以提高查询性能。
  2. 避免在WHERE子句中使用OR操作符:可以将OR操作符拆分成多个条件,使用UNION或者UNION ALL来合并结果,可以提高查询性能。
  3. 避免在WHERE子句中使用!=操作符:可以使用<>操作符来替代!=操作符,可以提高查询性能。

Mybatis 动态拼接语句时候经常使用到 大于(>,>=)、小于(<,<=)、不等于(<> ,!=)符号。由于此符号包含了尖括号,Mybatis使用的 *.xml文件格式。在 XML 中仅有字符 "<"和"&" 是非法的。省略号、引号和大于号是合法的,但是把它们替换为实体引用是个好的习惯

符号

原符号

替换符号

小于

<

&lt;

小于等于

<=

&lt;=

大于

>

&gt;

大于等于

>=

&gt;=

不等于

<>

&lt;&gt;


&

&amp;

单引号


&apos;

双引号

"

&quot;

  1. 避免在WHERE子句中使用IN操作符:可以将IN操作符拆分成多个条件,使用UNION或者UNION ALL来合并结果,可以提高查询性能。
  2. 避免在WHERE子句中使用LIKE操作符:如果可能的话,可以使用等于操作符来替代LIKE操作符,可以提高查询性能。
  3. 避免在WHERE子句中使用通配符:%:如果可能的话,可以使用等于操作符来替代通配符:%,可以提高查询性能。
  4. 避免在WHERE子句中使用函数:如果可能的话,可以将函数的结果保存到变量中,然后在WHERE子句中使用变量,可以提高查询性能。

关于日常开发中的一些小的SQL优化建议_连接查询

待续....

举报

相关推荐

0 条评论