zoukankan      html  css  js  c++  java
  • 14.8.9 Clustered and Secondary Indexes

    14.8.9 Clustered and Secondary Indexes
    
    每个InnoDB 表有一个特殊的索引称为 clustered index 用于存储数据。
    
    通常, clustered index 是主键的同义词。
    
    
    为了使查询得到最好的性能,插入, 和其他数据库操作,你必须了解 InnoDB如何使用 clustered index 
    
    来优化最创建的查询和DML操作对于每个表
    
    
    1. 当你定义一个主键在你的表上, InnoDB 使用它作为clustered index.
    
    定义一个主键对于每个你创建的表, 如果没有逻辑唯一或者非空列或者列的集合,增加一个新的自增列,
    
    自增列的值会自动填充
    
    
    2.如果你没有定义一个主键对于你的表, MySQL 定位第一个唯一索引 索引所有的列是NOT NULL 
    
    InnoDB 使用它作为 clustered index. 
    
    
    3.如果 table 没有主键索引或者合适的唯一索引,InnoDB 内部生成一个隐藏的 clustered index
    
    在一个合成的列 包含row ID 值。
    
    记录是按ID排序 InnoDB 分配给记录在这个表里。
    
     row ID 是一个6字节的字段 自动增加当新行插入时。因此, 激励安row ID排序是按物理插入的顺序
    
    
     Clustered Index 如何加速查询:
    
    
    访问一个记录通过clustered index 是快速的因为 index 搜索直接指向page有所有的记录数据。
    
    如果一个表是大的,clustered index 结构通常节省一个磁盘I/O操作当比较存储组织 存储记录使用一个不同的页
    
    Secondary Indexes 和 Clustered Index的关系:
    
    所有的索引除了 clustered index 都被称为secondary indexes.
    
    在InnoDB, 每个记录在一个 secondary index 包含primary key columns 对于记录,
    
    以及列指定用于secondary index. 
    
    如果主键列是太长了, secondary indexes 使用更多的空间,因此一个短的主键是有优势的
    

  • 相关阅读:
    Self referencing loop detected for property 错误
    路径 序列化
    css基础回顾
    React 随笔二
    Reactnative 随笔一
    值类型和引用类型 装箱和拆箱 类和结构的异同 接口抽象类异同
    多语言配置--LogisticsPlatform物流平台系统
    word-wrap&&word-break,奇偶行、列设置样式
    easyUI 的tree 修改节点,sql递归查询
    跳转页面,传递参数——android
  • 原文地址:https://www.cnblogs.com/zhaoyangjian724/p/6199009.html
Copyright © 2011-2022 走看看