`
touya
  • 浏览: 74685 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MySQL中IN的使用需要当心

阅读更多

在MySQL5中,where语句里使用

(A,B) in ((X1,Y1),(X2,Y2))

索引不会被使用。所以类似

select * from t1, t2 where (t1.a, t2.b) in ((1,2),(2,3))

的语句是无法使用a,b上的索引的,应该改为
select * from t1, t2 where  (t1.a = 1 and t2.b = 2) or (t1.a = 2 and t2.b = 3)

 

另一个典型例子是:

table1上有一个联合索引(a,b)

select * from table1 where (a=1 and b=2) or (a=2 and b=3);

这是可以用到索引的,而写成in的形式,就不行了,如下所示:

select * from table1 where (a, b) IN ((1,2),(2,3));

分享到:
评论

相关推荐

    MySQL中使用or、in与union all在查询命令下的效率对比

    主要介绍了MySQL中使用or、in与union all在查询命令下的效率对比,论证了在通常情况下union all并不一定比or及in更快,需要的朋友可以参考下

    mysql中find_in_set函数的基本使用方法

    我在项目中的使用场景是这样的: 有一个应用类型表,表中有parentId字段和parentIds字段,前者为父级id,后者为多级父级id,在库中都是varchar类型,parentIds由多个父级id拼接而成由”,”分隔. 组长告知我可以使用该函数,...

    mysql中文使用手册

    MySQL 得到最大的性能 11 MySQL 基准套件 12 MySQL 实用程序 13 维护 MySQL 安装 14 为MySQL增加新函数 15 为MySQL增加新过程 16 MySQL对 ODBC 支持 17 与一些常用程序一起使用MySQL 18 问题和常见的错误

    在MySQL中创建带有IN和OUT参数的存储过程的方法

    在MySQL 入门教程中,我们能够看到很多关于如何创建储存过程 和如何利用 IN 和 OUT 参数调用存储过程的示例。这些示例都很简单,能够很好的帮助你理解 MySQL 中创建带参数存储过程的语法。这些示例已在 MySQL 5.5 中...

    mysql数据库In的优化.txt

    mysql数据库in大量数据优化方法.

    MySQL in a Nutshell

    MySQL in a Nutshell 2nd Ed pdf

    解决MySQL中IN子查询会导致无法使用索引问题

    主要介绍了MySQL中IN子查询会导致无法使用索引问题,文章给大家介绍了两种子查询的写法,需要的朋友可以参考下

    mysql in 排序

    mysql in 排序 mysql in 排序

    MySQL中文参考手册.chm

    1.2 关于本手册 1.2.1 本手册中使用的约定 1.3 MySQL的历史 1.4 MySQL的主要特征 1.5 MySQL稳定性? 1.6 顺应2000年 1.7 SQL一般信息和教程 1.8 有用的MySQL相关链接 ...

    MySQL 5.7 中文文档

    MySQL 5.7 中文文档 MySQL 5.7 中文文档 MySQL 5.7 中文文档

    利用MysqlODBC把Sqlserver数据库导入到Mysql中

    使用mysql odbc后就比较好办,可以使用sql server的管理工具,也可以使用mysql的管理工具,更可以使用其它方的管理工具。这里介绍一个使用sql的mmc的方法 ,将sql server的数据转化为mysql的数据库,将源和目的反之...

    MySQL的or、in、union与索引优化

    一:union all 肯定是能够命中索引的 二:简单的in能够命中索引 三:对于or,新版的MySQL能够命中索引 四、对于!=,负向查询肯定不能命中索引 五、其他方案

    mysql insert语句mysql insert语句mysql insert语句mysql insert语句mysql in

    mysql insert语句mysql insert语句mysql insert语句mysql insert语句mysql insert语句mysql insert语句mysql insert语句mysql insert语句mysql insert语句mysql insert语句mysql insert语句mysql insert语句mysql ...

    Distributed Transactions in MySQL

    Distributed Transactions in MySQL 分阶段提交事务

    MySQl\mysql使用教程指南.txt )

    2010-02-04 00:23:51 来源:自学网 浏览:1019 次 内容提要: 内容提要 : 有很多朋友虽然安装好了 mysql 但却不知如何使用它这篇文章中我就从连接 mysql 修改密码、增加用户等方面来学习一些 mysql 常用命令。...

    python mysql中in参数化说明

    第一种:拼接字符串,可以解决问题,但是为了避免sql注入,不建议这样写 还是看看第二种:使用.format()函数,很多时候我都是...如果自己写mysql连接要读取本地配置文件,需要注意: 在配置文件config.ini中写: [sql]

    MySQL 5.1中文手冊

    5.12.3. 在多服务器环境中使用客户端程序 5.13. MySQL查询高速缓冲 5.13.1. 查询高速缓冲如何工作 5.13.2. 查询高速缓冲SELECT选项 5.13.3. 查询高速缓冲配置 5.13.4. 查询高速缓冲状态和维护 6. MySQL中的复制 6.1....

    MySQL Workbench的使用教程(初级入门版)

    MySQL Workbench是MySQL AB发布的可视化的数据库设计软件,它的前身是 FabForce 公司的 DB Designer 4。 MySQL Workbench 为数据库管理员、程序开发者和系统规划师提供...MySQL工作台可在Windows,Linux和Mac上使用。

    MySQL中文参考手册

    MySQL中文参考手册 <br>MySQL是一个精巧的SQL数据库管理系统,虽然它不是开放源代码的产品,但在某些情况下你可以自由使用。由于它的强大功能、灵活性、丰富的应用编程接口(API)以及精巧的系统结构,受到了广大...

Global site tag (gtag.js) - Google Analytics