- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 PostgreSQL 的新手,如果我问的是显而易见的问题,我深表歉意。
我有一个名为 customer_products
的表。它包含以下两个索引:
CREATE INDEX customer_products_customer_id
ON public.customer_products USING btree (customer_id)
CREATE UNIQUE INDEX customer_products_customer_id_product_id
ON public.customer_products USING btree (customer_id, product_id)
他们在 customer_id
方面做同样的事情还是他们以不同的方式运作?我不确定是应该保留它们还是删除 customer_products_customer_id
。
最佳答案
没有什么是第一个索引可以做而第二个索引做不到的,所以你应该删除第一个索引。
对于 WHERE
(或 ORDER BY
)子句仅涉及 customer_id
的查询,第一个索引相对于第二个索引的唯一优势是索引较小。这使得对许多索引条目的范围扫描稍微快一些。
额外索引在大小和数据修改速度方面的代价通常超过了该优势。在一个只读数据仓库中,我有一个查询可以显着获利,我可能会想保留这两个索引,否则我不会。
你绝对应该不删除UNIQUE
索引,因为它有一个与性能无关的有值(value)的用途:它防止表包含两行具有索引列的保存值。如果这是您想要保证的,UNIQUE
索引将确保您的数据保持良好状态。
旁注:即使效果相同,如果表具有唯一约束(由唯一索引支持)比仅具有索引更好。如果不出意外,它会更好地记录目的。
关于postgresql - 这些索引是否对 customer_id 做同样的事情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56214998/
那就是我的第一个使用MVVM的项目,MVVM light。 我有一个列表框,该列表框从PersonList Observable集合中刷新,正常添加和删除刷新。问题是编辑项目时。 我寻找了解决该问题的
这个问题在这里已经有了答案: How do I return the response from an asynchronous call? (41 个回答) 关闭10 年前。 我有这个代码 var
我有一个很大的配置文件(用户),我需要将其转到正确的位置并设置一些默认值。 因为我有一个安装程序类,所以我在其中的配置文件中添加了一些参数设置,但在安装程序文件夹中创建了配置文件。 确保这些默认参数只
|AA|多对多|BB|多对多 |CC| 与连接表映射成为 |AA|--|AA_BB|--|BB|--|BB_CC|--|CC| (抱歉,我无法发布图片,声誉低) 编辑:简短的问题是为什么如果a创建Aa
我想创建这个例子 GET /my_store/products/_search { "query" : { "filtered" : { "query"
AWS 为我们提供了 Athena 来运行无服务器 Hive 查询,Azure 是否有任何服务可以让我们运行无服务器 Hive 查询。 最佳答案 @ clown 。我相信您正在寻找的 Hive 的 A
这让我抓狂......这很好用: jQuery(document).ready(function(){ setTimeout(function(){ jQuer
我是一名优秀的程序员,十分优秀!