SQL 使用IN()操作符SQL语句时遇见的坑

  • Post author:
  • Post category:其他




SQL 使用IN()操作符SQL语句时遇见的坑


问题描述:


一次偶然发现,一样的代码,发现IN() 括号里的内容数据只有一行的时候,查询非常慢。

IN()语句括号里只有一行数据时查询效果如下:

在这里插入图片描述


优化后:


IN()语句括号里有多行数据查询效果如下:

在这里插入图片描述

经对比,IN语句括号里只有一行数据的和多行数据相比,查询速度是0.313s 和80.662s。显然查询速度相差80多秒,前端查询起来让人烦恼。


解决方法:


为了优化这个问题,注意不能让IN()括号语句里的数据为一行。

至此,排除故障。查询时间为0.2~0.4s非常顺畅,体验效果佳。

PS:以下是IN的正确语法,IN (value1,value2,…)注意value值不能为单一,否则在做多表查询时会出现效率慢的问题。


IN 操作符

允许我们在 WHERE 子句中规定多个值。


SQL IN 语法

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1,value2,...)



版权声明:本文为CAIXIONGSHUN原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。