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
wuxi889
V2EX  ›  MySQL

碰到的查询的疑问

  •  
  •   wuxi889 · 2021-01-20 16:59:54 +08:00 · 2067 次点击
    这是一个创建于 1387 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天在做查询优化时,碰到了一个问题:百万级别的索引查询时,SELECT id(主键) 与 SELECT session_id(普通索引) 的查询速度差了一大截,EXPLAIN 的剖析结果两条查询语句是一致的。

    SQL1 SELECT id FROM table WHERE path_type='products'; // 耗时 0.5s 左右

    SQL2 SELECT session_id FROM table WHERE path_type='products'; // 耗时 7s 左右

    EXPLAIN 两个 SQL 相同 1 SIMPLE statistics_page_visits ref statistics_page_visits_path_type_index statistics_page_visits_path_type_index 1023 const 1144028 100.00 Using index

    请问造成以上结果的原因是什么 @_@ 晕乎

    10 条回复    2021-01-21 13:44:16 +08:00
    zoharSoul
        1
    zoharSoul  
       2021-01-20 17:03:44 +08:00
    session_id 要回表
    tokyo2020
        2
    tokyo2020  
       2021-01-20 17:05:50 +08:00
    应该是索引有关? 1,主键就直接返回了 2,session_id 还需要再找到 session_id 的位置再返回 ?
    wuxi889
        3
    wuxi889  
    OP
       2021-01-20 17:11:13 +08:00
    @zoharSoul session_id 作为索引也需要回表吗?
    fhsan
        4
    fhsan  
       2021-01-20 17:13:10 +08:00
    什么是回表查询?
    什么是索引覆盖?
    如何实现索引覆盖?
    chendy
        5
    chendy  
       2021-01-20 17:40:56 +08:00
    这么离谱的差距…
    盲猜 id 是个数字,session_id 是个挺长的字符串,查询返回的数据量又大,网络瓶颈导致等了那么久……
    zoharSoul
        6
    zoharSoul  
       2021-01-20 17:46:10 +08:00
    @wuxi889 除非 session_id 和 path_type 在一个联合索引上...
    fengpan567
        7
    fengpan567  
       2021-01-20 17:52:18 +08:00
    id 是也有聚簇索引的,不用回表查询
    geekzhu
        8
    geekzhu  
       2021-01-20 18:13:58 +08:00
    session_id 和 path_type 是一个索引吗
    Hurriance
        9
    Hurriance  
       2021-01-20 18:16:38 +08:00
    楼主可以贴一下 table 的 DDL
    zhangysh1995
        10
    zhangysh1995  
       2021-01-21 13:44:16 +08:00
    贴 show create table
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3031 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 13:48 · PVG 21:48 · LAX 05:48 · JFK 08:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.