如何使用聚簇索引
2013-08-23 00:00
113 查看
聚簇索引是一种对磁盘上实际数据重新组织以按指定的一个或多个列的值排序。由于聚簇索引的索引页面指针指向数据页面,所以使用聚簇索引查找数据几乎 总是比使用非聚簇索引快。每张表只能建一个聚簇索引,并且建聚簇索引需要至少相当该表120%的附加空间,以存放该表的副本和索引中间页。建立聚簇索引的 思想是:
1、大多数表都应该有聚簇索引或使用分区来降低对表尾页的竞争,在一个高事务的环境中,对最后一页的封锁严重影响系统的吞吐量。oracle培训
2、在聚簇索引下,数据在物理上按顺序排在数据页上,重复值也排在一起,因而在那些包含范围检查(between、<、<=、& gt;、>=)或使用group by或order by的查询时,一旦找到具有范围中第一个键值的行,具有后续索引值的行保证物理上毗连在一起而不必进一步搜索,避免了大范围扫描,可以大大提高查询速度。
3、在一个频繁发生插入操作的表上建立聚簇索引时,不要建在具有单调上升值的列(如IDENTITY)上,否则会经常引起封锁冲突。
4、在聚簇索引中不要包含经常修改的列,因为码值修改后,数据行必须移动到新的位置。
5、选择聚簇索引应基于where子句和连接操作的类型。
聚簇索引的侯选列是:
1、主键列,该列在where子句中使用并且插入是随机的。
2、按范围存取的列,如pri_order > 100 and pri_order < 200。
3、在group by或order by中使用的列。
4、不经常修改的列。
5、在连接操作中使用的列。
1、大多数表都应该有聚簇索引或使用分区来降低对表尾页的竞争,在一个高事务的环境中,对最后一页的封锁严重影响系统的吞吐量。oracle培训
2、在聚簇索引下,数据在物理上按顺序排在数据页上,重复值也排在一起,因而在那些包含范围检查(between、<、<=、& gt;、>=)或使用group by或order by的查询时,一旦找到具有范围中第一个键值的行,具有后续索引值的行保证物理上毗连在一起而不必进一步搜索,避免了大范围扫描,可以大大提高查询速度。
3、在一个频繁发生插入操作的表上建立聚簇索引时,不要建在具有单调上升值的列(如IDENTITY)上,否则会经常引起封锁冲突。
4、在聚簇索引中不要包含经常修改的列,因为码值修改后,数据行必须移动到新的位置。
5、选择聚簇索引应基于where子句和连接操作的类型。
聚簇索引的侯选列是:
1、主键列,该列在where子句中使用并且插入是随机的。
2、按范围存取的列,如pri_order > 100 and pri_order < 200。
3、在group by或order by中使用的列。
4、不经常修改的列。
5、在连接操作中使用的列。
相关文章推荐
- C++ 如何使用时间函数(2)--记忆游戏
- 如何使用PHP计算上一个月的今天
- 如何优化cocos2d程序的内存使用和程序大小:第二部分_(转)
- VC++ 6.0 中如何使用 CRT 调试功能来检测内存泄漏(转载)
- Thymeleaf 模板和springMvc的整合以及如何在前段页面使用取值
- 如何使用GParted调整Linux分区(图解,双语)
- VB如何使用API直接操作打印机
- Win8如何使用开始屏幕中功能强大的照片应用
- 如何在Blog中使用feedburner管理RSS订阅
- Android Studio如何使用Git提交代码到GitHub和OsChina并解决冲突
- 如何在C#使用COM接口
- 企业如何规划和使用云计算平台?
- bash下如何使用bind[En]
- Java中如何封装自己的类,建立并使用自己的类库?
- 关于如何使用 “最短的URL缩短网址 http://to/”
- 如何使用XCode 4创建ipa文件及提交应用程序
- 如何使用XCode 4创建ipa文件及提交应用程序
- MySQL压力测试方法 如何使用mysqlslap测试MySQL的压力?
- 如何学习使用CMS系统进行网站建设?