zoukankan      html  css  js  c++  java
  • Mysql-sql查询技巧分析

    一、索引能不能为空

      提前建立 email 为索引

    1、explain select * from myshop.user where email is null;

      输出

       可以看到用到索引

    2、explain select * from myshop.user where email = 'test';

      输出

       可以看到用到索引

    3、explain select * from myshop.user where email is not null;

      输出

      当表有大部分数据,查找不为空的索引就失效。

    二、函数计算会不会使用索引

    1、

      

       输出

    2、

      

     输出

      

      改为以下

      

     输出,避免使用函数

      

    没有使用函数,则用了索引

    三、类型不一致,可以用索引吗

    1、add_time 是数值,‘1591025358’ 是字符串;

      

     输出

      

     因为优化器自动优化的原因,因此可以用索引

    四、where 顺序

      提前给表做的以下索引

    1、

      看最左前缀

      可以顺序不一样,但是不能少

    五、union 要代替 or 语句吗

      union 比 or 消耗比较小,如下,看具体情况

      

       如果有较大的数据就拆为 union

    六、exist 和 in 

      exist 比较快

  • 相关阅读:
    javaSE基础知识点
    java自定义注解
    java自定义线程池
    java写投票脚本自动化初探
    java线程安全初窥探
    锁的深入理解
    java守护线程与非守护线程
    java设计模式初探
    java内存模型初窥探
    uniapp中组件之间跳转遇到的问题
  • 原文地址:https://www.cnblogs.com/Jomini/p/14116526.html
Copyright © 2011-2022 走看看