数码资讯
SQL语句优化使用存在而不是在,不存在替换不在
在许多基于查询的查询的基础上,为了满足一个条件,往往需要加入另一个表中。在这种情况下,使用存在(或不存在)通常会提高查询效率。在子查询中,在条款的不将执行一个内部的排序和合并。在任何的情况下,不在是最低效的(因为它执行的子查询表的全表遍历)。为了避免使用不在,我们可以把它改写为外部连接(外部连接)或
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
在许多基于查询的查询的基础上,为了满足一个条件,往往需要加入另一个表中。在这种情况下,使用存在(或不存在)通常会提高查询效率。在子查询中,在条款的不将执行一个内部的排序和合并。在任何的情况下,不在是最低效的(因为它执行的子查询表的全表遍历)。为了避免使用不在,我们可以把它改写为外部连接(外部连接)或不存在。
作为
我要查询的冗余数据在sendorder表(没有数据连接reg_person或现场)
SQL =,选择sendorder.id,sendorder.reads,sendorder.addtime从sendorder哪里sendorder.person_id不(不),对与错。
程序执行时间:40109.38毫秒
SQL =选择sendorder.id,sendorder.reads sendorder.addtime,从sendorder哪里不存在(选择ID从reg_person哪里reg_person。user_id = sendorder.person_id没有(选择)或存在的身份从工地,工地。ID = sendorder.worksite_id顺序sendorder.addtime DESC)
程序执行时间:8531.25毫秒
很明显,使用不存在的效率要高得多。
作为
我要查询的冗余数据在sendorder表(没有数据连接reg_person或现场)
SQL =,选择sendorder.id,sendorder.reads,sendorder.addtime从sendorder哪里sendorder.person_id不(不),对与错。
程序执行时间:40109.38毫秒
SQL =选择sendorder.id,sendorder.reads sendorder.addtime,从sendorder哪里不存在(选择ID从reg_person哪里reg_person。user_id = sendorder.person_id没有(选择)或存在的身份从工地,工地。ID = sendorder.worksite_id顺序sendorder.addtime DESC)
程序执行时间:8531.25毫秒
很明显,使用不存在的效率要高得多。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。