我是靠谱客的博主 舒服路灯,最近开发中收集的这篇文章主要介绍sql的join中使用函数导致查询变慢的坑一、问题二、解决方法三、总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、问题

由于历史原因,数据库有几个表设计的不是很好。

最近有个需求,需要联查这几个表,必须要用到一个sql:

 SELECT * FROM mytable1 A  
  left join mytable2 i 
  on SUBSTRING(A.student_id,2,8) = i.user_id and SUBSTRING(A.student_id,1,1) = i.class_id

大概就是这个意思,i.class_id与i.user_id拼起来,才是A.student_id;
如果想联查,只能这样写。

但是,这个查询很慢,慢到影响用户体验。

二、解决方法

因为这句sql太慢了,所以最后还是决定修改表结构。

就是给mytable1扩2个列,增加user_id列与class_id列,把值赋好,加好索引,然后把sql改成这样:

 SELECT * FROM mytable1 A  
		left join mytable2 i 
		on A.user_id = i.user_id and A.class_id = i.class_id

三、总结

sql中联查其它表时,不要用多余的函数,会导致查询变的非常慢;

如果实在要用函数,就修改表结构,加索引,然后不用这个函数。

最后

以上就是舒服路灯为你收集整理的sql的join中使用函数导致查询变慢的坑一、问题二、解决方法三、总结的全部内容,希望文章能够帮你解决sql的join中使用函数导致查询变慢的坑一、问题二、解决方法三、总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部