zoukankan      html  css  js  c++  java
  • 索引法则--字符串不加单引号会导致索引失效

    Mysql 系列文章主页 

    ===============

    1 准备数据

    1.1 建表

    DROP TABLE IF EXISTS staff;
    CREATE TABLE IF NOT EXISTS staff (
        id INT PRIMARY KEY auto_increment,
        name VARCHAR(50),
        age INT,
        pos VARCHAR(50) COMMENT '职位',
        salary DECIMAL(10,2)
    );

    1.2 插入数据

    INSERT INTO staff(name, age, pos, salary) VALUES('11223344', 22, 'HR', 5000);

    注意:此处的 name = '11223344',这是一个数字,但,也是一个字符串,对吧~

    2 测试&Explain分析

    2.1 创建索引

    CREATE INDEX idx_nameAgePos ON staff(name, age, pos);

    2.2 测试

    Case#1:有单引号

    EXPLAIN SELECT * FROM staff WHERE name = '11223344';

    结果:type=ref,索引正常使用。

    Case#2:没有单引号

    EXPLAIN SELECT * FROM staff WHERE name = 11223344;

    结果:type=all,全表扫描,索引没有被使用。

    对比上面两个Case,不难看出,对于索引上的字符串查询条件(例子中的 name),如果不加单引号,会导致索引失效进而转为全表扫描!

    3 结论

    字符串不加单引号会导致索引失效

  • 相关阅读:
    bloom filter
    【转】单实例
    Log Structured Merge Trees(LSM) 原理
    【转】南网成立始末
    变电站综合自动化系统
    bsp tree
    Private Bytes,Working Set,Virtual Size的区别
    kdtree
    asp.net下载文件几种方式
    C# FTP操作
  • 原文地址:https://www.cnblogs.com/cyhbyw/p/8845829.html
Copyright © 2011-2022 走看看