回答
- 独特 - 该列担保唯一值(或一组列)在索引包括
- 覆盖 - 包括所有在一个特定的查询中使用的(或一组查询的)列,允许数据库仅使用索引而不必实际查看表数据以检索结果
- 集群 - 这是实际数据在磁盘上排序的方式,这意味着如果查询使用聚集索引来查找向上的价值观,它没有采取仰视不包含在索引中的任何数据的实际表行的额外步骤。
thanx它对我有帮助4我也是 – Freelancer 2012-12-20 11:33:24
OdeToCode has a good article covering the basic differences
,因为它说的文章:
适当的索引对于大型数据库中的良好表现 至关重要。 有时你可以弥补一个良好的指数不佳 书面查询,但 可能很难弥补差 索引用再好的查询。
非常真实,如果你刚刚开始使用它,我会专注于聚集索引和复合索引,因为它们可能会成为你使用最多的索引。
我会添加一些索引类型的
位图 - 当你有不同的可能值非常低的数字,速度非常快,不会占用太多的空间
PARTITIONED - 允许索引为了存储或性能的原因,基于通常对于非常大的数据库对象有利的某些属性进行分区。
FUNCTION/EXPRESSION索引 - 用于根据表预先计算某个值并将其存储在索引中,一个非常简单的示例可能是基于lower()或子字符串函数的索引。
对于相同类型的索引,不同的数据库系统有不同的名称,因此请注意这一点。例如,在Oracle中称为“索引组织表”的SQL Server和Sybase称为“聚集索引”。
我建议你搜索Jason Massie(http://statisticsio.com/)和Brent Ozar(http://www.brentozar.com/)的相关信息。他们有一些关于处理索引的真实场景的文章。
PostgreSQL允许部分索引,其中仅匹配谓词的行被索引。例如,您可能需要为客户表索引仅用于那些处于活动状态的记录。这可能看起来像:
create index i on customers (id, name, whatever) where is_active is true;
如果索引多列,并且有许多不活跃的客户,这可能是在空间方面大赢(该指数将存储在更少的磁盘页),因此性能。打你需要的指标,至少指定谓词:
select name from customers where is_active is true;
甲骨文b树,位图,分区和非分区的各种组合,反向字节,位图连接,和域的索引。
这里到11gR1中文档的链接上的主题:http://download.oracle.com/docs/cd/B28359_01/server.111/b28274/data_acc.htm#PFGRF004
SQL Server 2008有filtered indexes,类似于PostgreSQL的partial indexes。两者都允许包含在仅符合指定条件的索引行中。
的语法与到PostgreSQL:
create index i on Customers(name) where is_alive = cast(1 as bit);
传统观点认为,指数选择应基于基数。他们会说,
对于低基数列像GENDER,使用位图。对于像LAST_NAME这样的高基数,请使用b-tree。
这不是与Oracle,其中,索引的选择应替代地基于(OLTP与OLAP)的类型的应用程序的情况下。具有位图索引的表上的DML可能导致严重的锁争用。另一方面,Oracle CBO可以轻松地将多个位图索引组合在一起,位图索引可用于搜索空值。作为一般规则:
对于频繁的DML和日常查询,使用B树的OLTP系统。对于具有罕见DML和adhoc查询的OLAP系统,请使用位图。
我不确定这是否适用于其他数据库,欢迎评论。下面的文章讨论的主题进一步:
索引组合是位图索引的用例。 – Apocalisp 2008-09-27 19:25:24
- 独特
- 集群
- 非群集
- 列存储
- 指数无线个包括列
- 指数的计算列
- 过滤
- 空间
- XML
- 全文
要查看索引的类型及其含义访问: https://msdn.microsoft.com/en-us/library/ms175049.aspx
- 1. makefiles有哪些不同类型,.mf和GNUMakefile文件有什么区别?
- 2. SilverStripe可以做什么不同类型的“刷新”,它们有什么不同?
- 3. 有许多不同的数据类型的好处是什么?
- 4. 索引器有什么好处?
- 5. ColumnStore索引对Azure有什么好处?
- 6. 在C++中有哪些不同类型的指针和引用?他们为什么有用?
- 7. 什么是Haskell中的一些抽象数据类型,它们与代数数据类型有什么不同?
- 8. 有哪些不同类型的runfiles
- 9. Cakephp,它有什么好处?
- 10. Assert() - 它有什么好处?
- 11. 索引和分片有什么区别
- 12. C# - “部分”类有什么好处?
- 13. python类有什么好处?
- 14. com.isomorphic.datasource。*和com.smartgwt.client.data。*,它们有什么不同?
- 15. 索引列有重复值的列有什么好处吗?
- 16. 使用分部类而不是抽象类有什么好处?
- 17. 部分索引和稀疏索引mongodb有什么区别?
- 18. 这些数字是什么,它们的类型是什么?
- 19. 输入/输出流与普通读写器有什么区别,它们的类型有什么区别?
- 20. 使用指针或不使用它们作为类引用。有什么不同?
- 21. 超级类型子类型表有什么好处
- 22. 为什么一些Java包装类与它们的基本类型有不同的名称?
- 23. 分别对2列进行索引和每列的索引有什么区别?
- 24. jQuery FancyBox,它有什么好处?
- 25. Z Shell“autoload”builtin - 它有什么好处?
- 26. Django inlineformsetfactory - 它有什么好处?
- 27. 元编程,它有什么好处?
- 28. 属性后台 - 它有什么好处?
- 29. Lucene SpanQuery - 它有什么好处?
- 30. Flex + Java EE它有什么好处?
什么数据库平台? – therealhoff 2008-09-27 18:31:59