zoukankan      html  css  js  c++  java
  • MySQL 查询优化之 or

    当使用or的时候是不会用到索引的

    mysql> explain SELECT * FROM aladdin_resource WHERE  state = 1 OR state = 2;
    +----+-------------+------------------+------+---------------+------+---------+------+-------+-------------+
    | id | select_type | table            | type | possible_keys | key  | key_len | ref  | rows  | Extra       |
    +----+-------------+------------------+------+---------------+------+---------+------+-------+-------------+
    |  1 | SIMPLE      | aladdin_resource | ALL  | state         | NULL | NULL    | NULL | 59074 | Using where |
    +----+-------------+------------------+------+---------------+------+---------+------+-------+-------------+
    1 row in set (0.00 sec)
    

      解决办法就是用union替换or

     explain select * from aladdin_resource where state=1 union select * from aladdin_resource where state=2;
    +----+--------------+------------------+------+---------------+-------+---------+-------+-------+-------------+
    | id | select_type  | table            | type | possible_keys | key   | key_len | ref   | rows  | Extra       |
    +----+--------------+------------------+------+---------------+-------+---------+-------+-------+-------------+
    |  1 | PRIMARY      | aladdin_resource | ref  | state         | state | 2       | const |   383 | Using where |
    |  2 | UNION        | aladdin_resource | ref  | state         | state | 2       | const | 21370 | Using where |
    | NULL | UNION RESULT | <union1,2>       | ALL  | NULL          | NULL  | NULL    | NULL  |  NULL |             |
    +----+--------------+------------------+------+---------------+-------+---------+-------+-------+-------------+
    3 rows in set (0.05 sec)
    

      高下立判

  • 相关阅读:
    微博粉丝服务---“公众号”开发
    springboot --- 之SSM框架整合
    Android 接收短信
    数字币开发相关
    boot camp要求独立的fat分区
    u盘安装 osx 出现 “不能验证”
    微软驱动签名
    centos7 安装 isign
    用windbg查看dmp文件,定位bug位置
    H5移动端,ios从后台返回到app,页面会白一下
  • 原文地址:https://www.cnblogs.com/xiongji/p/3823403.html
Copyright © 2011-2022 走看看