问题标签 [composite-index]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 复合索引的正确顺序是什么(mysql)
我已经读过,在复合索引中,您应该首先对最具体的列进行排序,但是我的想法是,由于我的理解(或缺乏),最优化的路线是首先覆盖最不具体的索引索引上的映射如何在内存中工作。视觉辅助
例如,如果我有一个vehicles
包含三列、vehicle
和type
的表driver
。
vehicle
可以过滤为 3 个可能的值car
, bike
,helicopter
type
可以过滤到6个值,petrol/automatic
, petrol/manual
, diesel/automatic
, diesel/manual
,, electric/automatic
,electric/manual
driver
是驱动程序的名称(不确定数量的值)
--
如果过滤vehicle
可以返回 1000 个结果,type
500 个结果,driver
比如说 3 个结果,那么最佳索引不应该是vehicle, type, driver
?因为如果索引以开头,driver
那是否意味着在进一步过滤之前扫描一个巨大的type
索引vehicle
?
有人可以帮我澄清一下,并向我解释一下,如果我应该首先订购最具体的列,为什么以及它是如何工作的?
mysql - MySQL/MariaDB 中复合索引的大小是多少
假设我有三列,A、B、C。它们分别具有x、y 和 z 可能值的范围。
所有三列上的索引是否具有与 x * y * z 成比例的大小?
sql-server - 三列的复合索引
我们得到了93M行的映射表,其中保存了三个表和对应的三个表的映射信息。我们在从映射表访问数据时面临性能问题。
表名 | PK信息 | 行数 |
---|---|---|
卖方 | SellerId 主键 | 3000 行 |
店铺 | StoreId 主键 | 20000 行 |
产品 | ProductId 主键 | 200k 行 |
卖家商店产品映射 | SellerId,ProductId,StoreId 复合非聚集索引。此表中还有一个代理键:SellerStoreProductMappingId,用作集群的主键 | 93M 行 |
我们的查询可以访问以下三种组合中的任何一种:Seller, Product, Store
在 93M 行的表中。
我的实际查询是这样的:
但是,正在发生的是非聚集索引:SellerId、ProductId、StoreId 在我们的查询中很少使用,即使我们对 SellerId 进行了过滤。它用于 storeId 的索引扫描。
我们的疑问是,对于这三列组合,
- 我们应该选择单独的非聚集索引(3 个索引)吗?
- 我们应该选择两列非聚集复合索引(4 个索引)吗?
- 我们应该选择三列复合非聚集索引(9 个索引)吗?代替 9,我们将限制在特定的使用场景。?
注意:我们无法创建聚集列存储索引,因为我们将 ROWVERSION 数据类型作为映射表中的数据类型之一。
firebase - Firestore:在子集合中的数组字段上创建复合索引
我有一个 Firestore 数据库结构,如下所示:
数组的每个元素purchases
都是一个带有字段的 Map:
我想创建一个 Firestore 查询来查找所有用户的最新购买。我创建了一个如下的综合指数,但这不起作用。任何人都可以建议吗?
firebase - Firebase Firestore - 分析利用复合索引的查询的性能
我在用户集合中有以下 json 文档:
我有一个关于位置和日期的综合索引。在生产中会有很多这样的文档,我需要执行返回某个用户 X 的最近和老用户的查询。由于我是初学者,我想测试(就像你在 MongoDB 上所做的那样)查询,即确保文档按位置和年龄排序,并且读取正确的文档。如何获取有关查询的信息,例如“读取的文档数”、“返回的文档数”等?
google-cloud-platform - 如何在数据存储中创建复合索引以过滤实体中的多个属性
我们将 Google Datastore 用于我们的仪表板。在仪表板中,我们为最终用户提供过滤选项。
假设我们有一个数据存储类型,其结构是:
有一个用例,我们需要在特定时间段内过滤数据,并结合不同的其他属性。
在 Datastore 中创建复合索引以实现此功能的最佳方法是什么?
有什么想法吗?
mysql - 我可以在 MySQL 中为复合/多列索引设置多顺序索引吗?
我有一张invoices
这样的桌子:
现在在我的整个应用程序中,我可能有以下查询:
或者
或 where 子句的任何其他顺序。
我已经分别在 client_id 和 is_recurring 上有了索引。
但是对于复合索引,我应该在
或者
或两者?
请注意,两者的顺序不同。那么对于不同订单搜索的性能呢?我应该创建具有多个顺序/方向的复合索引吗?
更新:
另外,如果我有一个date
列用于比较更大或更小或排序,我应该使用哪些复合索引组合?
postgresql - 在 Postgresql 中是否需要对复合主键的一部分进行索引?
我有一个包含复合主键的(大)表,由 5 列(a、b、c、d、e)组成。
我想有效地将具有其中两列(a + e)的所有行选择为给定值。
在 PostgreSQL 中,我需要一个索引吗?或者数据库会使用主键(甚至部分使用?)
我看过以下帖子,其中指定 MySQL 可以使用多列索引的最左侧部分来有效地查询行。但是我没有在复合主键上找到任何 PostgreSQL 的东西。