› 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 · Oct 26, 2019 · 5441 views
    This topic created in 2535 days ago, the information mentioned may be changed or developed.

    今天面试问道 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 replies  •  2019-10-28 14:17:19 +08:00
    pedia0992
        1
    pedia0992  
       Oct 26, 2019
    有二级索引,当然会走索引了.
    hushao
        2
    hushao  
       Oct 26, 2019 via iPhone
    没有理由不走索引啊..
    ebony0319
        3
    ebony0319  
    OP
       Oct 26, 2019
    @pedia0992
    @hushao
    我刚试了低版本的,确定确定走的全表扫描。
    lolizeppelin
        4
    lolizeppelin  
       Oct 27, 2019 via Android
    不是所有情况都是走索引比全表扫描快的
    Nick66
        5
    Nick66  
       Oct 27, 2019
    mysql 5.7 单表五百万依然走索引,应该是高版本做了优化
    Aresxue
        6
    Aresxue  
       Oct 28, 2019
    用 innodb 大概率都是会走的,这个要看存储引擎以及其是如何组织索引的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2412 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 09:04 · PVG 17:04 · LAX 02:04 · JFK 05:04
    ♥ Do have faith in what you're doing.