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 AssignClientManager\G;
*************************** 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 会使用更多的空间,所以一个短的主键是有利的。

最新文章

  1. 从零3D基础入门XNA 4.0(2)——模型和BasicEffect
  2. linux 安装 ArcSDE10.1
  3. Cocos2dx实现象棋之布局
  4. 优惠书价计算---c++--软件工程
  5. C#TCPClient应用-一个简单的消息发送和接收
  6. .net System.TypeInitializationException 类型初始值设定项引发异常
  7. jQuery.validate 中文API
  8. pip install robotframework-sshlibrary提示: Microsoft Visual C++ 9.0 is required
  9. 《第一行代码》学习笔记34-服务Service(1)
  10. SEXTANTE中调用任意C++控制台程序的简单例子
  11. Hdu 3371 Connect the Cities(最小生成树)
  12. Leetcode 细节实现 Set Matrix Zeroes
  13. JSON对象、JSON字符串的相互转换
  14. 7-21(排序) PAT排名汇总
  15. 【转】sed 学习笔记
  16. SpringBoot集成redis的key,value序列化的相关问题
  17. Cordova/Ionic Android 开发环境搭建 - Windows系统
  18. 网站滚动n个像素后,头部固定
  19. cocos2d-x JS 字符串
  20. chorem浏览器无法下载

热门文章

  1. TCP三次握手和四次挥手具体解释
  2. TortoiseSVN 文件关联图标不显示的解决方法
  3. javascript笔记整理(数据类型强制/隐式转换 )
  4. 瑞蓝RL-NDVM-A16网络视频解码器 视频上墙解决方案专家--数字视频解码矩阵
  5. Netty源代码学习——ChannelPipeline模型分析
  6. EasyUI - Combo组件
  7. Android KeyCode(官方)
  8. linux+Qt程序如何打包发布
  9. Silverlight技术调查(3)——国际化
  10. 极度简约 最小 Linux 发行版 Tiny Core Linux 7.1 发布