数据库——索引原理与慢查询优化(12)

  • 索引原理
    • 目的:提高查询效率
    • 本质:通过不断地缩小想要获取数据的范围来筛选出最终想要的结果,同时把随机的事件变成顺序的事件,也就是说,有了这种索引机制,我们可以总是用同一种查找方法来锁定数据
    • 索引的数据结构:b+树
  • Mysql索引管理
    • 索引功能:加速查找
    • mysql中的primary key ,unique,联合唯一也都是索引,这些索引除了加速查找意外,还有约束的功能
    • 常用的索引
      • 普通索引index:加速查找
      • 唯一索引:
        • 主键索引primary key:加速查找+约束(不为空,不能重复)
        • 唯一索引unique:加速查找+约束(不能重复)
      • 联合索引
        • primary key(id,name):联合主键索引
        • unique(id,name):联合唯一索引
        • index(id,name):联合普通索引
      •  1 举个例子来说,比如你在为某商场做一个会员卡的系统。
         2 
         3 这个系统有一个会员表
         4 有下列字段:
         5 会员编号 INT
         6 会员姓名 VARCHAR(10)
         7 会员身份证号码 VARCHAR(18)
         8 会员电话 VARCHAR(10)
         9 会员住址 VARCHAR(50)
        10 会员备注信息 TEXT
        11 
        12 那么这个 会员编号,作为主键,使用 PRIMARY
        13 会员姓名 如果要建索引的话,那么就是普通的 INDEX
        14 会员身份证号码 如果要建索引的话,那么可以选择 UNIQUE (唯一的,不允许重复)
        15 
        16 #除此之外还有全文索引,即FULLTEXT
        17 会员备注信息 , 如果需要建索引的话,可以选择全文搜索。
        18 用于搜索很长一篇文章的时候,效果最好。
        19 用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以。
        20 但其实对于全文搜索,我们并不会使用MySQL自带的该索引,而是会选择第三方软件如Sphinx,专门来做全文搜索。
        21 
        22 #其他的如空间索引SPATIAL,了解即可,几乎不用
        举例说明
  • d