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

2019 mysql 缓存失效重新认识

  •  
  •   ebony0319 · 2019-10-26 18:00:57 +08:00 · 4422 次点击
    这是一个创建于 1853 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天面试问道 mysql 缓存失效条件,当提到 <,>,in,between and,or 的时候面试官说其实可能会走索引,回来一试好像真的。 mysql 环境:5.7.25-log 表 every_day,id 自增主键,days 普通索引。数据量 365。

    测试<,>

    select * from every_day where id<=100;
    
    select * from every_day where days<=100;
    
    select * from every_day where days between 1000 and 2000;
    
    select * from every_day where days =1 or days=2;
    
    select * from every_day where days in (1,2,3);
    

    全部都是 INDEX_SCAN (range)

    当然他也提到如果数据量达到一定数量,索引还是会失效(没有验证)。

    6 条回复    2019-10-28 14:17:19 +08:00
    pedia0992
        1
    pedia0992  
       2019-10-26 21:46:35 +08:00
    有二级索引,当然会走索引了.
    hushao
        2
    hushao  
       2019-10-26 22:00:58 +08:00 via iPhone
    没有理由不走索引啊..
    ebony0319
        3
    ebony0319  
    OP
       2019-10-26 22:54:51 +08:00
    @pedia0992
    @hushao
    我刚试了低版本的,确定确定走的全表扫描。
    lolizeppelin
        4
    lolizeppelin  
       2019-10-27 09:54:38 +08:00 via Android
    不是所有情况都是走索引比全表扫描快的
    Nick66
        5
    Nick66  
       2019-10-27 12:07:12 +08:00
    mysql 5.7 单表五百万依然走索引,应该是高版本做了优化
    Aresxue
        6
    Aresxue  
       2019-10-28 14:17:19 +08:00
    用 innodb 大概率都是会走的,这个要看存储引擎以及其是如何组织索引的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   992 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:43 · PVG 04:43 · LAX 12:43 · JFK 15:43
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.