• 14.2.5.2 Clustered and Secondary Indexes


    14.2.5.2 Clustered and Secondary Indexes  :
    
    
    每个InnoDB 表 有一个特别的索引称为clustered index  行数据存储的地方。
    
    
    典型的,clustered index是主键的同义词,得到最好的查询,插入性能,和其他数据库操作,
    
    你必须了解InnoDB 使用clustered index 来优化最常见的查询和DML操作在每个表上。
    
    
    
    当你定义一个PRIMARY KEY 在你的表上,InnoDB 使用它作为一个 clustered index.
    
    定义一个主键对于每个表在你创建的时候。
    
    如果没有逻辑的唯一和no-null列或者列的组合,增加一个自增列,它的值是自动填充的。
    
    
    如果你没有定义一个主键为你的表,MySQL 定位第一个UNIQUE index ,所有的key 列是NOT NULL的 ,
    
    InnoDB 使用它作为clustered index.
    
    mysql> show create table AssignClientManagerG;
    *************************** 1. row ***************************
           Table: AssignClientManager
    Create Table: CREATE TABLE `AssignClientManager` (
      `sn` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键(自增字段)',
      `clientSn` int(11) NOT NULL COMMENT 'clientSn 映射',
      `clientManagerSn` int(11) NOT NULL COMMENT 'clientManagerSn 映射',
      `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '分配的客户经理记录状态 1-生效,2-失效',
      `createdTime` datetime NOT NULL COMMENT '创建时间',
      `updatedTime` datetime DEFAULT NULL COMMENT '修改时间',
      PRIMARY KEY (`sn`),
      KEY `AssignClientManager_idx1` (`clientSn`)
    ) ENGINE=InnoDB AUTO_INCREMENT=4919 DEFAULT CHARSET=utf8 COMMENT='客户经理分配表'
    1 row in set (0.00 sec)
    
    
    如果表没有主键或者合适的 UNIQUE index,InnoDB 内部产生一个隐藏的clustered index在虚构的列
    
    包含了row ID值。 记录是按ID 排序 InnoDB 分配给记录。
    
    How the Clustered Index Speeds Up Queries :Clustered Index 如何加速查询;
    
    
    通过clustered index  访问记录 是快速的 因为 Index 搜索直接指向所有的数据行。
    
    
    如果表是大的,clustered index 结构通常会接收磁盘I/O 操作当与使用一个不同的Page 比较存储组织的时候
    
    
    (比如,MyISAM 使用一个文件用于数据记录和其他的索引记录)
    
    
    How Secondary Indexes Relate to the Clustered Index   Secondary Indexes和 Clustered Index的关系:
    
    
    所有的索引除了clustered index 都被称为secondary indexes.
    
    
    在InnoDB,每个记录在一个secondary index 包含 主键列 对于记录,
    
    
    以及列指定的用于secondary index. InnoDB使用主键列值来搜索 clustered index.中的记录
    
    
    如果主键列是长的, secondary indexes 会使用更多的空间,所以一个短的主键是有利的。

  • 相关阅读:
    AS/400开发经验点滴(三)如何使用分布式关系数据库
    AS/400开发经验点滴(五)通用日志管理工具
    AS/400开发经验点滴(二)一个批量修改文件属性的工具
    FTP执行AS400命令
    ORA12514 TNS 监听程序当前无法识别连接描述符中请求服务 的解决方法
    Centos 查看系统硬件信息
    [转]Oracle的DBMS_METADATA包
    java读写删.text,.xml文件内容
    oracle 是user_tables里面可以查找到一个表,而用DESC或者insert语句插入时就会报不存在视图。
    Oracle监听服务lsnrctl参数及查询状态详解
  • 原文地址:https://www.cnblogs.com/zhaoyangjian724/p/6199908.html
Copyright © 2020-2023  润新知