索引的原理

索引的使用原则

创建索引

  • 基本语法:

    1. # 建表语法
    2. create table xxx{
    3. id int(5) PRIMARY KEY,
    4. ...
    5. FULLTEXT INDEX <index_name> <column_name>,
    6. KEY <index_name> <column_name>,
    7. UNIQUE KEY <index_name> <column_name>
    8. }
    9. # 更新语法
    10. alter table xxx add KEY <index_name> <column_name>
  • 主键索引

    • 语法:PRIMARY KEY (a)
  • 普通索引
    • 语法:KEY(a)
  • 联合索引
    • 语法:KEY (a,b,c)
    • 作用:可以支持a | ab | abc的查找格式
      • 不支持 b | c的查找格式
      • 匹配时,使用=或者in,那么abc的顺序不需要限制(SQL优化器会帮我们优化成abc的顺序)
      • 匹配时,任意一级别的索引匹配失效,都会导致下一级别索引匹配失效
        • 比如在匹配a时使用了返回查询(比如like),那么bc的匹配都不会用到索引
    • 创建原则:越往左侧的字段,应当越常用
  • 唯一索引
    • 语法:UNIQUE KEY (a , b ,c)
    • 作用:确保索引字段的唯一性,如果是两个字段,则确保组合的唯一性
  • 全文索引
    • 语法:FULLTEXT INDEX (a)