项目场景:
最近在做数据迁移的工作,会员库有200多万数据,组织机构有4万数据。要把这些数据迁移到新系统的数据库中,开发新系统之前完全没考虑过数据量。当数据导入之后,页面就各种报错。。。。。。。。。。。。。。。
问题描述、分析
数据导入之后,页面就开发各种报错。主要的报错就是我写的一个sql用了in,导致sql卡死。还有个问题就是组织机构树一次性返给前端,前端还自己做了服务器托管网搜索,也无法顺利加载,当然这个改成懒加载就好了。
下面主要分析我卡死的sql吧。我的sql主要逻辑是,查询下级部门所有的会员。我是先查询的下级所有部门id,在去会员库中使用in(部门id),有些部门下级部门很多的有上千的id。这样就直接卡死了。
select * from user where dept_id in (1,2,.......................................................)
按照我的理解,最不多不就是不走索引嘛。为啥会卡死啊,搞不懂(ps:这种写法服务器托管网还他妈容易直接sql超长,直接报错)
解决方案:
把in改成连表查询,因为in里面的数据是我先从另一个表查的。改成连表查询之后sql执行时间直接1s了。
求解:我连表查询也没有走索引呀,按道理查询效率不是一样么,为啥连表查询比in查询效率高这么多?
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: 《探索虚拟与现实的边界:VR与AR谁更能引领未来?》
引言 在当今数字时代,虚拟现实(VR)和增强现实(AR)技术正以惊人的速度发展,并逐渐渗透到我们的日常生活中。它们正在重新定义人与技术、人与环境之间的关系,同时也为各行各业带来了全新的可能性。然而,究竟是VR还是AR更有潜力改变未来?本文将围绕这一问题展开深入…