zoukankan      html  css  js  c++  java
  • MySQL 数据库中索引的实现 和 建立索引的原则

    1 索引的实现原理

    索引是满足某种特定查找算法的数据结构,这种数据结构以某种方式指向数据,从而实现高效的查询操作。

    对于不同的数据库引擎实现方式并不一样,MySQL 中常用的 MyISAM 和 IoonBD 引擎都是使用B+Tree 实现的,具有较高的搜索效率,但二者具体的实现存在着差别。

    1. MyISAM 中叶子节点的data域存放的是数据记录的地址,例如以主键建立索引,叶子节点的Key 是主键值,Value 是定位到主键这一行数据的具体地址。
    2. InnoDB 中叶子节点的data域直接存放完整的数据记录,但data域大小有一定限制,不是无限存放的。

    注意:索引是存放在硬盘中,不是内存中,读取需要IO操作。

    2 建立索引的原则

    1. 主键自动建立唯一索引;
    2. 频繁用于查询条件的字段;
    3. 查询中与其他表关联的字段,外键应该创建索引;
    4. 查询中排序的字段;
    5. 查询中统计或者分组字段;
      除以上外,
    6. 数据频繁更新的字段不要建立索引;
    7. where 条件里用不到的字段不要创建索引;
    8. 表记录太少不要创建索引;
    9. 数据重复且分布平均要创建索引。
  • 相关阅读:
    HTTP状态码
    NSData NSDate NSString NSArray NSDictionary 相互转换
    NSDictionary to jsonString || 对象转json格式
    git 上传本地文件到github
    NSAssert用法
    深入理解GCD(一)
    ug-Assertion failure in [MyClass layoutSublayersOfLayer:]
    构建之法阅读笔记01
    学习进度
    四则运算程序
  • 原文地址:https://www.cnblogs.com/chaozhengtx/p/14451739.html
Copyright © 2011-2022 走看看