首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL使用OR提高查询性能

问MYSQL使用OR提高查询性能
EN

Database Administration用户
提问于 2014-11-05 22:56:02
回答 1查看 53关注 0票数 0

我有一个非常简单的带有2列的MYSQL表,并运行以下查询:

代码语言:javascript
复制
SELECT * FROM table WHERE (col1 = '123' AND col2 = '456')
                       OR (col1 = '456' AND col2 = '123')

Col1和col2是一个复合主键:PRIMARY KEY('col1','col2')。每一个都是另一个表中主键的外键。

当我为上面的查询运行EXPLAIN命令时,我得到了以下信息:

代码语言:javascript
复制
id  select_type  table  type    possible_keys   key key_len ref rows    Extra
1   SIMPLE       table  index   PRIMARY,col2    col2    8   NULL    1   Using where; Using index

上述结果中的type是index,它非常类似于All,因此很可能在大型数据库上运行缓慢。是否有方法改进上面的select命令

EN

回答 1

Database Administration用户

发布于 2014-11-05 22:59:23

利用工会怎么样?

SELECT * FROM table WHERE (col1 = '123' AND col2 = '456') UNION ALL SELECT * FROM table WHERE (col1 = '456' AND col2 = '123')

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/82011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档