14.2.5.2 Clustered and Secondary Indexes
2016-06-03 17:28
316 查看
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 会使用更多的空间,所以一个短的主键是有利的。
相关文章推荐
- db2查询表是否死锁和解锁
- ubuntu下搭建android开发环境(二)设置ubuntu的root管理员密码(by 星空武哥)
- 网络数据老化代码
- C++Primer:函数(参数传递:引用形参)
- PHP笔记1
- Makefile 嵌套执行
- Android 轻量级输入校验库:Fire Eye
- Linux netstat命令详解
- 服务器自动宕机后,自动更新了web.xml配置文件
- tjut 5289
- 于静态成员变量的二种访问权限的使用区别
- UVa11462
- OC与swift相互调用
- jQuery select 清空保留第一项
- menu
- vue实例属性(vm.$els)
- jquery file upload 后台收到的文件名中文乱码, filename中文乱码
- 浅谈自动化测试
- 加个标记达到同步效果~
- 最小公倍数的计算