原文:SQL 优化关于 or 和 in 的使用区别

突然想总结一下 SQL 里 OR 和 IN 的区别,在翻阅网上很多资料后,根据一位网友的千万条数据实验,总结如下: 测试用的数据库数据为 W条,共分为四组分别测试 A组:分别使用 OR 和 IN 查询 条数据 B组:分别使用 OR 和 IN 查询 条数据 C组:分别使用 OR 和 IN 查询 条数据 D组:分别使用 OR 和 IN 查询 条数据 实验开始之前数据库关闭了Query Cache,因此 ...

2020-06-21 15:16 0 1072 推荐指数:

查看详情

SQL优化 - 避免使用 IN 和 NOT IN

WHY? IN 和 NOT IN 是比较常用的关键字,为什么要尽量避免呢? 1、效率低 项目中遇到这么个情况: t1表 和 t2表 都是150w条 ...

Wed Mar 06 01:30:00 CST 2019 0 6960
SQL优化关于or与in使用

网上有很多人都在谈论or与in的使用,有的说二者没有什么区别,其实不然,估计是测试做的不够,其实or的效率为O(n),而in的效率为O(log2n),当基数越大时,in的效率就能凸显出来了。 有人做了这么一组实验(测试库数据为1000万条记录):A组分别用or与in查询3条记录,B组分 ...

Mon Oct 28 17:40:00 CST 2019 0 492
SQL 优化 - explain 的使用

通过关键字 explain 可以分析出: 1. 表的读取顺序 2. 表的读取操作的读取类型 3. 哪些索引有可能会被使用到 4. 哪些索引被实际使用了 5. 表之间的引用 6. 每张表有多少行被优化器查询 每个字段的含义: 1. id - id值越大,就越先被MySQL执行,如果id相同 ...

Thu Jul 04 05:36:00 CST 2019 0 532
Oracle Sql优化之Rownum的使用

1.rownum:rownum是一个伪列,需要在数据取出来后,rownum才会有值,因此在分页查找时,需要进行嵌套查询。 采用分析函数也是可以实现一次嵌套 但是由于分析 ...

Sat May 30 05:50:00 CST 2015 0 2679
sql优化之union all 和or ,in使用

不要迷信union all 就比 or及in 快,要结合实际情况分析到底使用哪种情况。 对于索引列来最好使用union all,因复杂的查询【包含运算等】将使or、in放弃索引而全表扫描,除非你能确定or、in会使用索引 对于只有非索引字段来说你就老老实实的用or 或者in,因为 非索引字段 ...

Fri Mar 22 20:25:00 CST 2019 0 1103
sql优化__rownum的使用【转】

ROWNUM的概念ROWNUM是一个虚假的列。它将被分配为 1,2,3,4,...N,N 是行的数量。一个ROWNUM值不是被永久的分配给一行 (这是最容易被误解的)。表中的某一行并没有标号;你不可以 ...

Thu Aug 18 06:14:00 CST 2016 1 8939
SQL优化SQL使用with as 语法

解释: WITH AS短语,也叫做子查询部分,定义一个SQL片段后,该SQL片断可以被整个SQL语句所用到。有的时候,with as是为了提高SQL语句的可读性,减少嵌套冗余。 示例: 语法: with temp名字 as 查询语句,temp名字1 as 查询语句 ...

Thu Nov 25 17:49:00 CST 2021 0 147
SQL优化- 数据库SQL优化——使用EXIST代替IN

数据库SQL优化——使用EXIST代替IN 1,查询进行优化,应尽量避免全表扫描 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引 . 尝试下面的技巧以避免优化器错选了表扫描: · 使用ANALYZE TABLEtbl_name ...

Fri Aug 18 20:10:00 CST 2017 0 6105
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM