V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
pennai
V2EX  ›  MySQL

请教一个 sql 查询效率问题

  •  
  •   pennai · Mar 23, 2022 · 2652 views
    This topic created in 1508 days ago, the information mentioned may be changed or developed.
    如果对某加了 unique 索引的字段、或者主键字段查询,暂定字段名为 fieldA ,数据类型为数字,不回表的情况下,
    where fieldA in (1)

    where fieldA = 1 ,
    两种查询效率上是否会有区别?
    11 replies    2022-03-24 16:35:25 +08:00
    byx
        1
    byx  
       Mar 23, 2022
    没区别,可以 EXPLAIN 看一下
    Red998
        2
    Red998  
       Mar 23, 2022
    推荐 where filedA =1 limit 1
    hidemyself
        3
    hidemyself  
       Mar 23, 2022
    没区别
    pennai
        4
    pennai  
    OP
       Mar 23, 2022
    @redorblacck886 学到了
    pennai
        5
    pennai  
    OP
       Mar 23, 2022
    @byx 感谢,explain 发现确实执行计划是一样的,即使不是 unique key 也是
    xuanbg
        6
    xuanbg  
       Mar 23, 2022
    unique 不过是数据 100%分散,索引的效能最大而已。扯到这个,就不得不提一个极端的例子:一个 bit 类型的字段,要不要建索引?
    我认为要看情况,如果 0/1 分布是均匀的,建索引就 P 用没有。如果这是个状态字段,所有的 0 都会变成 1 ,而且经常要查询值为 0 的数据,那索引的效能还是相当大的,非常值得建立索引。
    pennai
        7
    pennai  
    OP
       Mar 23, 2022
    @xuanbg 索引倒也不是只有查询用,Oracle 也有位图索引,正是你说的一个 bit 类型的索引,运算上性能很好
    zmal
        8
    zmal  
       Mar 24, 2022
    myql 有个配置是 in 里多少个值不走索引。比较多的话会全表扫描。
    pennai
        9
    pennai  
    OP
       Mar 24, 2022
    @zmal 谢谢,我去学习一个
    Pythoner666666
        10
    Pythoner666666  
       Mar 24, 2022
    @redorblacck886 主键 或者 unique 不需要加 limit = 1 吧
    mikejson
        11
    mikejson  
       Mar 24, 2022
    @Pythoner666666 有道理
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3009 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 07:18 · PVG 15:18 · LAX 00:18 · JFK 03:18
    ♥ Do have faith in what you're doing.