select * from t1 limit 10 会扫描全表 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
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
ruiyinjinqu
V2EX    MySQL

select * from t1 limit 10 会扫描全表

  •  
  •   ruiyinjinqu 2023-01-09 11:05:57 +08:00 7701 次点击
    这是一个创建于 1074 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我们写了可以查询生产数据库的运维小工具,方便排查问题,以前不怎么记得表字段,会用这个来查查记录。一直没啥问题,今天用了这个语句,结果执行了很长时间,然后数据库发出 jvm 告警,想问下,这个 sql 会进行全库扫描吗?我一直以为这个直接读取前 10 行就返回数据了。

    第 1 条附言    2023-01-09 13:58:28 +08:00
    破案 了,limit10 中间没空格,当作表的别名,limit 没生效,查询全表了,大意了!!!
    27 条回复    2023-07-26 10:25:41 +08:00
    Chinsung
        1
    Chinsung  
       2023-01-09 11:08:29 +08:00
    funbox
        2
    funbox  
       2023-01-09 11:10:43 +08:00
    加一个主键排序
    F281M6Dh8DXpD1g2
        3
    F281M6Dh8DXpD1g2  
       2023-01-09 11:13:27 +08:00
    显然不是全表扫描
    r4aAi04Uk2gYWU89
        4
    r4aAi04Uk2gYWU89  
       2023-01-09 11:40:08 +08:00
    type 是 all ,确实是 full table scan 。rows 是查询到满足条件的数据前,大概需要扫描的行数,不是完全精确。
    不是说加了索引就一定走索引,在表数据量小的情况下,全表扫描性能可以优于索引。
    ttwxdly
        5
    ttwxdly  
       2023-01-09 11:56:11 +08:00   2
    显然优化器觉得扫全表比主键快。
    idblife
        6
    idblife  
       2023-01-09 12:37:51 +08:00
    可以查询生产数据库的运维小工具

    你们 DBA 是不是想弄死你
    bjzhush
        7
    bjzhush  
       2023-01-09 12:53:54 +08:00
    select * from table where id >=1 and id <= 100
    id 为主键
    这样是最好的
    hhjswf
        8
    hhjswf  
       2023-01-09 13:00:19 +08:00 via Android
    是不是数据量太少,优化器感觉这么搞比较快
    PendingOni
        9
    PendingOni  
       2023-01-09 13:00:19 +08:00
    ![屏幕截图_20230109_125850.png]( https://s2.loli.net/2023/01/09/8XKaWdpyn3xUODs.png)
    wolfie
        10
    wolfie  
       2023-01-09 13:05:18 +08:00
    这个跟 主键、索引 有关系???
    PendingOni
        11
    PendingOni  
       2023-01-09 13:11:05 +08:00
    akira
      &nbp; 12
    akira  
       2023-01-09 15:35:46 +08:00
    那如何避免这种情况再次出现呢? 提前给表一个别名? 或者 sql 做下正则过滤,确保 limit 后面必须有空格?
    ruiyinjinqu
        13
    ruiyinjinqu  
    OP
       2023-01-09 16:41:07 +08:00
    @akira sql 必须带上 where 可以避免
    ruiyinjinqu
        14
    ruiyinjinqu  
    OP
       2023-01-09 16:44:36 +08:00
    @idblife 因为每次查数据都要提工单,然后运维部门还没空,一个一下午就能解决的问题,一周都解决不了,所以。。。。
    qeqv
        15
    qeqv  
       2023-01-09 17:12:12 +08:00
    MySQL 有反引号,习惯使用就不会出错。
    ```
    select * from `t1` limit 10;
    ```
    idblife
        16
    idblife  
       2023-01-09 17:35:23 +08:00
    @ruiyinjinqu
    在我司这样可能就被开除了
    闹着玩呢。。。
    ElmerZhang
        17
    ElmerZhang  
       2023-01-09 20:33:23 +08:00
    @ruiyinjinqu 不一定都有 where 的需求,总不能都加个 where 1 = 1 ,傻傻的。我的习惯是查多条时都带上 order by id desc 。
    kingpo
        18
    kingpo  
       2023-01-09 23:36:33 +08:00
    select top 10 * from table_name ,只查前 10 ,也没有查全表吧
    netabare
        19
    netabare  
       2023-01-10 00:53:57 +08:00 via Android   1
    ………这种关键词一般前后都要加格的吧
    alwaysdazz
        20
    alwaysdazz  
       2023-01-10 04:02:47 +08:00 via Android
    查数据的界面没有关键字高亮提示吗
    hdiwhsg
        21
    hdiwhsg  
       2023-01-10 08:42:44 +08:00 via iPhone
    xswl
    xaplux
        22
    xaplux  
       2023-01-10 08:54:34 +08:00
    。。。。。。
    wetalk
        23
    wetalk  
       2023-01-10 09:39:10 +08:00
    啊这这这,缺空格很明显看出来吧。。
    HaoC12
        24
    HaoC12  
       2023-01-10 10:58:54 +08:00
    awsl
    ruiyinjinqu
        25
    ruiyinjinqu  
    OP
       2023-01-10 10:59:13 +08:00
    @alwaysdazz 自己在管理台写了个简单页面,没有高亮啥的,对请求返回参数还 rsa 加密了 :(
    xlzyxxn
        26
    xlzyxxn  
       2023-01-16 14:05:16 +08:00
    2 楼 5 楼说的对
    xlzyxxn
        27
    xlzyxxn  
       2023-07-26 10:25:41 +08:00
    学习了一下,type 是 ALL 全表扫描,但是是扫了 10 个后就截断了直接返回了。意思就是是全表扫描,但没扫完
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2804 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 14:27 PVG 22:27 LAX 06:27 JFK 09:27
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86