22,210
社区成员
发帖
与我相关
我的任务
分享
是比in好,我现在in后面是一个变量,但是现在把in后面的数据变量存入临时表出现了问题,临时表一个字段无法一次存入大量的数据,也就是说join这条路走不通啊 [quote=引用 8 楼 zjcxc--个人微信公共号同名 的回复:]
通常 JOIN 比 IN 好
是比in好,我现在in后面是一个变量,但是现在把in后面的数据变量存入临时表出现了问题,临时表一个字段无法一次存入大量的数据,也就是说join这条路走不通啊 [quote=引用 8 楼 zjcxc--个人微信公共号同名 的回复:]
通常 JOIN 比 IN 好
是比in好,我现在in后面是一个变量,但是现在把in后面的数据变量存入临时表出现了问题,临时表一个字段无法一次存入大量的数据,也就是说join这条路走不通啊 通常 JOIN 比 IN 好
是比in好,我现在in后面是一个变量,但是现在把in后面的数据变量存入临时表出现了问题,临时表一个字段无法一次存入大量的数据,也就是说join这条路走不通啊 [quote=引用 8 楼 zjcxc--个人微信公共号同名 的回复:]
通常 JOIN 比 IN 好
是比in好,我现在in后面是一个变量,但是现在把in后面的数据变量存入临时表出现了问题,临时表一个字段无法一次存入大量的数据,也就是说join这条路走不通啊 通常 JOIN 比 IN 好
通常 JOIN 比 IN 好
[quote=引用 4 楼 吉普赛的歌 的回复:] 非常多是多少?几百、几千、几万? 少一点用表变量,太多了用临时表。 另外, in的数量如果到一定程度(比如几十万), 用什么都快不了, 还是要做分页, 不限制输出数量不行。
非常多是多少?几百、几千、几万?
少一点用表变量,太多了用临时表。
另外, in的数量如果到一定程度(比如几十万), 用什么都快不了, 还是要做分页, 不限制输出数量不行。
[quote=引用 1 楼 lich2005 的回复:]
可以考虑用临时表做,然后用 join 来查,A表和临时表的ID 最好都加上主键。
类似
SELECT *
FROM A
JOIN TMP ON A.ID = TMP.ID
一般说来 join 的速度比 in 要快一些,但这个有点老思维了,具体还得看SQL实际执行计划怎么工作的。
考虑的ID的数量很多,就不推荐 EXISTS 了,不过依然值得试试,看下效果。
可以考虑用临时表做,然后用 join 来查,A表和临时表的ID 最好都加上主键。
类似
SELECT *
FROM A
JOIN TMP ON A.ID = TMP.ID
一般说来 join 的速度比 in 要快一些,但这个有点老思维了,具体还得看SQL实际执行计划怎么工作的。
考虑的ID的数量很多,就不推荐 EXISTS 了,不过依然值得试试,看下效果。