Tag: 索引

为什么PostgreSQL对索引列执行顺序扫描?

非常简单的例子 – 一个表,一个索引,一个查询: CREATE TABLE book ( id bigserial NOT NULL, "year" integer, — other columns… ); CREATE INDEX book_year_idx ON book (year) EXPLAIN SELECT * FROM book b WHERE b.year > 2009 给我: Seq Scan on book b (cost=0.00..25663.80 rows=105425 width=622) Filter: (year > 2009) 为什么它不执行索引扫描呢? 我错过了什么?

SQL Server – 何时使用群集与非群集索引?

我知道群集和非群集索引之间的主要区别,并且了解它们是如何工作的。 我了解聚簇和非聚簇索引如何提高读取性能。 但有一点我不确定,那就是我会select一个的原因是什么。 例如:如果一个表没有聚集索引,是否应该创build一个非聚集索引,以及做什么的好处

为什么XPath中的索引以1而不是0开头?

有些同事和我正在比较我们编程的过去的语言,并且正在谈论我们用VBScript的经验,其奇怪的特征,如基于1的索引,而不是像其他语言那样基于0的索引,理由是它是(例如Excel VBA)而不是开发者的语言。 然后有人说,“ XPath也有一个基于索引的索引 ”,我不能相信,直到我发现这篇文章 ,其中有许多理由支持基于0的方法,包括迈克尔·凯本人的一些: “…基于零的索引往往会使访问具有一维数组访问expression式的multidimensional array时索引公式更简单” “在处理表格或对string进行下标时,基于零的地址往往会更方便” “…硬件寻址不是基于0的寻址的唯一好处…它也使得计算更容易…” 但引用迈克尔凯的结论是: …基于1的逻辑是XPath和XSLT的正确select…因为这种语言是为用户devise的,而不是为程序员devise的,用户仍然有这种老式的习惯,把书中的第一章称为Chapter一… 有人可以向我解释吗? (1)XPath是如何为用户devise的? 我无法想象任何不是开发人员的人都在用XPath的语法刚性或XSLT的声明性/function性编程方面进行争论。 (2)为什么XPath的创build者通过select基于1的索引来违背现代编程语言的规范?

如何在NULL列上创build唯一索引?

我正在使用SQL Server 2005.我想约束列中的值是唯一的,同时允许NULLS。 我目前的解决scheme涉及一个独特的索引,如下所示: CREATE VIEW vw_unq WITH SCHEMABINDING AS SELECT Column1 FROM MyTable WHERE Column1 IS NOT NULL CREATE UNIQUE CLUSTERED INDEX unq_idx ON vw_unq (Column1) 任何更好的想法?

我是否需要在外键上创build索引?

我有一张桌子A和一张桌子B A对B的主键B_ID有一个外键。 出于某种原因(我知道有合法的理由),当我将这两个表join到密钥中时,并没有使用索引。 我是否需要在A.B_ID上单独创build一个索引,或者是否需要外键的存在?

如何在Xcode 4中禁用索引?

不久之前,我将Xcode更新到了第4版。这个新版本花费了大量的时间在索引项目上(这是相当大的)。 这就是为什么我想禁用索引。 search通过Xcode帮助和互联网没有结果。 先谢谢你!

集群与非集群

我对SQL(Server 2008)的底层知识有限,现在正在被我们的数据库pipe理员挑战。 让我解释一下(我提到了明显的陈述,希望我是对的,但如果你看错了,请告诉我)情景: 我们有一个表格,为人们提供“法庭命令”。 当我创build表(名称:CourtOrder)时,我创build了这样的表: CREATE TABLE dbo.CourtOrder ( CourtOrderID INT NOT NULL IDENTITY(1,1), (Primary Key) PersonId INT NOT NULL, + around 20 other fields of different types. ) 然后我将一个非聚集索引应用到主键(为了效率)。 我的原因是,它是一个独特的领域(主键),应该索引,主要用于select的目的,因为我们经常Select from table where primary key = … 然后,我在PersonId上应用了一个CLUSTERED索引。 原因是为了一个特定的人物理上的订单,因为绝大多数工作是获得一个人的订单。 所以, select from mytable where personId = … 我现在已经被拉上了。 我被告知我们应该把聚集索引放在主键上,并把personId上的正常索引。 这对我来说似乎很奇怪。 首先,为什么要在一个独特的列上放置一个聚集索引? 它是什么聚类? 当然,这是浪费聚集索引? 我相信一个正常的索引将被用在一个独特的列上。 […]

获取第n个string的索引?

除非我缺less一个明显的内置方法,那么在string中获得第n个string的最快方法是什么? 我意识到我可以通过在循环的每次迭代中更新其开始索引来循环IndexOf方法。 但是这样做对我来说似乎很浪费。

SQLite中的主键是否需要索引?

当一个整数列被标记为SQLite表中的主键时,是否应该为它明确创build一个索引? SQLite似乎没有自动创build一个主键列索引,但也许它索引呢,因为它的目的? (我会一直在那个专栏上search)。 string主键的情况会不同吗?

快速XCode指数冻结或缓慢

也许这只是我遇到这样一个恼人的“function”: 从Xcode 6.0.1升级到Xcode 6.1后,情况发生了变化。 Xcode 6.1永远索引项目或编译源文件。 该项目不是一个巨大的。 它只包含工作区中的一堆Swift文件和AWS SDK 2.0 Cocoapods。 我不认为它应该防止整体索引和编译顺利。 我尝试了一些aws-sdk-ios-samples,只是看看Xcode 6.1是如何工作的,而且最终还是会一直等待下去。 我迄今为止所尝试的解决scheme是: 在pipe理器中删除“派生数据”,重新打开工作区。 (不能修复) (xcode 4 – 性能下降 ).xcodeproj文件中的“显示软件包内容”并删除.xcworkspace。 不幸的是,他们都没有工作。 任何想法? 还是有类似的经历? PS也许我应该尝试重新创build项目? 我的电脑设置:MacBook Pro(视网膜,13英寸,2014年中),内存8 GB 1600 MHz DDR3,优胜美地。 (我认为这足以运行这个小项目。)