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

关于 Mysql 的复合唯一索引和普通索引

  •  
  •   AnonymousAccout · Mar 15, 2017 via iPhone · 4534 views
    This topic created in 3491 days ago, the information mentioned may be changed or developed.
    如果 a 列和 b 列加上了复合唯一索性,发现在用 a 列筛选数据的时候并不会用到 index scan ,是因为我加索引的姿势有问题吗,另外如果在复合索引的基础上再给 a 列加上普通索引,会出现什么问题呢
    flniu
        1
    flniu  
       Mar 15, 2017   ❤️ 1
    一般地说,如果现有索引键顺序是 (a, b),再单独给 (a) 加索引没有意义。

    不会用到 index scan ,可能跟查询的选择度有关,也可能跟 sql 的写法有关。
    allenhu
        2
    allenhu  
       Mar 15, 2017   ❤️ 1
    不是加了索引就一定会用得到,看下高性能 MySQL 吧
    devforma
        3
    devforma  
       Mar 15, 2017   ❤️ 1
    a 列的区分度不高?统计下 count(distinct(a))/count(*)
    AnonymousAccout
        4
    AnonymousAccout  
    OP
       Mar 15, 2017 via iPhone
    @flniu
    a 列为 varchar 格式 sql 语句为筛选重复数据 group by a 之后用 having count > 1 来获取结果

    @allenhu 谢谢推荐这本书 我对索引相关的是不怎么了解
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   740 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 20:29 · PVG 04:29 · LAX 13:29 · JFK 16:29
    ♥ Do have faith in what you're doing.