`
touya
  • 浏览: 75719 次
  • 性别: 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的or、in、union与索引优化

    本文将基于一个具体的业务场景来探讨在MySQL中使用`union all`、`in`、`or`以及负向查询(如`!=`)时如何有效地利用索引。 #### 一、`union all`肯定能命中索引 假设有一个名为`order`的订单业务表,其结构如下: ...

    mysql数据库In的优化.txt

    - 在需要从大量预定义值中筛选数据的情况下使用`IN`子句非常有用。 - 如用户管理、商品分类等场景中,经常会遇到需要根据多个ID进行查询的需求。 #### 三、`IN`子句的问题与挑战 1. **性能瓶颈**: - 当`IN`...

    mysql中文使用手册

    - **1.2.1 本手册中使用的约定** - 例如:斜体用于强调或表示变量名;`等宽字体`用于表示命令行输入等。 - **1.3 MySQL 的历史** - MySQL 的发展始于 1979 年的一个名为 Unirel 的项目。 - 1994 年正式发布,最初...

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

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

    mysql8中文参考手册.pdf

    MySQL 8提供了多种安装方式,包括从二进制文件安装、从源代码编译安装、使用RPM包安装等。安装完成后,需要进行基本的配置,包括设置root密码、配置网络连接、设置时区等。 数据库管理 MySQL 8提供了多种数据库...

    国家开放大学 MySQL数据库应用 实验训练1 在MySQL中创建数据库和表

    在实验 1-2 中,学生需要使用 CREATE DATABASE 语句创建“汽车用品网上商城系统”数据库,或者通过 MySQL Workbench 图形化工具创建数据库。创建数据库后,学生可以查看创建的数据库。 知识点 4:创建表 在实验 1-...

    MySQL 使用 SSL 连接配置详解

    在客户端连接MySQL时,需要指定使用SSL连接。例如,在MySQL命令行客户端中,你可以这样连接: ```bash mysql -u username -p --ssl-ca=/path/to/ca-cert.pem --ssl-cert=/path/to/client-cert.pem --ssl-key=/...

    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操作手册(中文版).pdf

    MySQL 5.7 提供了多种安装方式,包括使用通用二进制文件、使用 MySQL Yum Repository、使用 MySQL APT 存储库等。用户可以根据自己的需求选择合适的安装方式。 在安装 MySQL 之前,需要先确定要安装哪个 MySQL 版本...

    MySQL中文参考手册CHM版

    手册详细介绍了MySQL的安装、配置、使用以及管理等各个方面,是学习和工作中不可或缺的参考资料。 在MySQL的使用中,用户会接触到SQL语言,这是与数据库交互的主要方式。SQL(Structured Query Language)包括数据...

    oracle中的BLOB(照片)转换到mysql中

    在IT行业中,数据库管理系统(DBMS)如Oracle和MySQL在数据存储方面扮演着至关重要的角色。Oracle数据库系统支持多种复杂的数据类型,其中包括BLOB(Binary Large Object),用于存储非结构化的大数据,如图片、音频...

    MySQL 8.0 参考手册教程pdf

    在本教程中,我们将深入探讨几个关键知识点,包括如何使用mysql客户端,连接和断开与服务器的连接,以及创建和管理数据库。 首先,mysql客户端程序是与MySQL服务器进行交互的主要工具,它允许用户运行SQL查询并查看...

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

    使用mysql odbc后就比较好办,可以使用sql server的管理工具,也可以使用mysql的管理工具,更可以使用其它方的管理工具。这里介绍一个使用sql的mmc的方法 ,将sql server的数据转化为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 ...

    MySQL Administrator的使用教程

    MySQL Administrator是MySQL数据库管理系统中的一款强大管理工具,它为数据库管理员提供了直观且高效的图形界面,以执行各种管理和维护任务。本教程将详细讲解MySQL Administrator的使用方法,帮助初学者快速上手。 ...

    使用servlet,jdbc将mysql中数据显示在jsp页面中

    在这个项目示例中,我们将深入探讨如何使用这些技术将MySQL数据库中的数据呈现到JSP页面上。 首先,我们需要了解Servlet。Servlet是Java平台上的一个标准接口,用于扩展服务器的功能,特别是处理HTTP请求。在本项目...

    MySQL 5.7 中文文档

    2. **性能优化**:MySQL 5.7引入了诸多性能优化措施,如改进的查询缓存、更高效的索引使用、更少的磁盘I/O以及更快的数据读取。其中,优化的线程池管理允许更有效地处理并发连接,提高服务器的并发性能。 3. **JSON...

Global site tag (gtag.js) - Google Analytics