WEB开发网
开发学院数据库MySQL Schema的优化和索引 - 高性能的索引策略 - 聚簇索... 阅读

Schema的优化和索引 - 高性能的索引策略 - 聚簇索引(Clustered Indexes)

 2009-09-02 00:00:00 来源:WEB开发网   
核心提示: 那么col2是什么样子的?和上面的有什么区别?,其实没有任何区别,Schema的优化和索引 - 高性能的索引策略 - 聚簇索引(Clustered Indexes)(4),和其他索引也一样,事实上,这个策略就会降低维护次要索引的工作量了,使用行的主键作为指针会使索引变大,在MyISAM中,在主键

那么col2是什么样子的?和上面的有什么区别?。其实没有任何区别。和其他索引也一样。

Schema的优化和索引 - 高性能的索引策略 - 聚簇索引(Clustered Indexes)

事实上,在MyISAM中,在主键和其他键的索引结构上并没有区别。一个主键就是唯一的,不能为NULL,并命名为PRIMARY的索引。

InnoDB 数据布局

InnoDB存储同样的数据,是和MyISAM不一样的,因为聚簇的结构。如图,InnoDB存储表。

Schema的优化和索引 - 高性能的索引策略 - 聚簇索引(Clustered Indexes)

乍看起来,并没有和上一张图有什么区别。但是再一看,这个示例显示的是整个表,而不仅仅是索引。因为聚簇索引在InnoDB中就是一张表。并不像MyISAM有独立的行存储。

在聚簇索引中的每个叶子节点都包含了主键,事物ID,用来MVCC和事务的回滚指针,还有就是剩下的列。如果主键在一个列的前缀上,InnoDB就包括这个列的值和剩下的所有的列。

相比较MyISAM,次要索引和聚簇索引也不是很相同。InnoDB次要索引的叶子节点包含了主键的值,就像指向行的指针一样。当移动行或者数据页的分裂,这个策略就会降低维护次要索引的工作量了。使用行的主键作为指针会使索引变大,但是也意味着InnoDB在移动行的时候不会更新指向这行的指针。

下面就是次要索引在col2的图

Schema的优化和索引 - 高性能的索引策略 - 聚簇索引(Clustered Indexes)

上一页  1 2 3 4 5 6  下一页

Tags:Schema 优化 索引

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接