问题标签 [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.
google-app-engine - 新实体的 gae 数据存储复合索引重建/更新
我正在使用 GAE Datastore 复合索引,并在 2 天前成功创建了复合索引。索引处于“服务”状态。但是,索引不会针对新条目自动更新。我必须等待它自动更新,还是我必须使用gcloud preview datastore create-indexes INDEX_FILE [GLOBAL-FLAG …]
命令手动触发?谢谢。
sql - 多列上的PostgreSQL索引,什么时候太多了?
使用 PostgreSQL 9.6
我有一个表,其中包含一些我想过滤并按时间排序的值:
- 时间戳(可能是在 UI 中选择的范围)
- 状态字符串(目前只有几个已知值,也可以在 UI 中选择)
- 上下文(UI 中数据的范围)
我想知道我是否应该:
- (上下文,状态)上的 btree 索引 + 时间上的单独索引
- 或(上下文、状态、时间)上的 btree 索引
- 或者每个都有一个 btree 索引?
- 或在(时间、状态、上下文)上的 btree 索引,用于小时间范围?
我怀疑数字 1 是最好的选择,上下文 + 状态将允许过滤掉值,然后它会扫描时间索引。我在我的数据上同时创建了 1 号并看到了一些改进,但是您如何在每种方法之间做出决定,是否有一些指导方针?
其中一个查询或多或少类似于:
另一个正在寻找时间范围。我看起来 postgres 使用多个索引,一个使用 (fk_context, severity, timestamp) 然后使用 (severity, time) 索引,但它也取决于限制。
laravel - Laravel 综合指数发行
我检查了这个解决方案。 #1071 - 指定的密钥太长;最大密钥长度为 1000 字节 但我想知道如何在 laravel 迁移文件中执行此操作,因为我不能直接在 mysql 中执行此操作,我需要一个可以更改迁移文件中索引列长度的解决方案。
mysql - 按 id 排序的复合索引上的并发查询非常慢
我有一个定义如下的表:
当使用以下 sql 有大约 10 个并发读取时:
它变慢了,大约需要 100 毫秒。
但是,如果我将其更改为
然后是正常的,需要几个毫秒。
我不明白为什么按 id 添加订单会使查询慢得多?谁能解释一下?
ruby-on-rails - 在创建复合唯一索引时提供文本列长度
我正在尝试在一个新表上创建一个索引,该索引需要agency_id
(整数)和IP
地址(文本)的唯一性。我知道我需要在索引上为IP
. 但是我在将长度分配给列时遇到了问题IP
。
此代码返回错误
Mysql2::Error: 不正确的前缀键;使用的密钥部分不是字符串,使用的长度比密钥部分长,或者存储引擎不支持唯一前缀密钥: CREATE UNIQUE INDEX `index_whitelisted_ips_on_agency_id_and_ip` ON `whitelisted_ips` (`agency_id`(15), `ip`(15))
因为它试图将长度放在整数字段上。任何帮助,将不胜感激。
firebase - 在 Firestore [通配符] 中为点注释的动态路径创建索引?
我的收藏创建如下:
现在我写了一个查询如下
此查询工作正常,但是当我将 orderBy 添加到上述查询时,我被要求index
为查询创建一个。
由于categoryName
可以创建并且可以随时更改,我应该为每个 categoryName 添加索引,这将是数百个。
有什么方法可以创建通配符索引category.categoryName
吗?
我尝试使用category.*
,但这是不可接受的。希望能在这里找到一些帮助。
ruby-on-rails - 为日期字段栏添加索引
我们在项目中使用软删除。所以默认情况下,每个查询都会产生 where 条件 as"deleted_at is NULL"
和使用其他一些 scopes(only_deleted) 查询时可能是"deleted_at is NOT NULL"
. 在这种情况下,是否需要添加带有deleted_at 列的复合索引。
假设我有一个模型用户并且用户属于特定项目,并且我正在尝试使用 [project_id, id] 添加复合索引。在这种情况下,我是否也必须包括 deleted_at ?
mysql - 为什么我的 MySQL 复合索引比同一列上的单个索引具有更少的基数?
我首先在我的表中创建了 2 个单独的索引:uid 和 time。然后我决定创建一个复合索引(uid,时间)。但是为什么复合索引(第 3 行)中 uid 的基数小于单个索引(第 1 行)中 uid 的基数?
mysql - MySQL 8 速度慢,复合索引下降
我有以下查询:
在 MySQL 8.0.15 中大约需要 0.8 秒。
我试过这样的索引:
以及像这样的:
和许多其他排列。我已经删除了它们并从头开始重做了很多次。Visible 本身确实有一个索引。
当我进行解释时,我看到它只在使用名为views_desc_id_desc_visible 的键时执行“使用位置”。从查询中删除可见并不会改变它的性能。删除两个 desc (因此:按视图排序,id)确实使它成为 0.0008 秒。
为什么这不快点?
更新 (从评论复制)
修复它。我只是不知道为什么以其他方式使用会忽略索引。
mysql - 使用复合索引从快照恢复的 AWS RDS 超级慢
所以我有 2 个表,每个表都是 25GB。
表 t1 在单个列上有一个索引,而 t2 有一个复合索引。
我所有的查询都是使用索引的简单查询。
我的 t2 表
我的查询
解释结果:
我观察到的奇怪的事情是,当我从快照恢复数据库时,t2 会变得非常慢,延迟时间为 3000,但 t1 会在大约 5 分钟后变得正常(延迟时间为 100)。
我了解快照存储在 s3 中。但是为什么 t1 工作正常但 t2 超级慢?
更新:我手动检查并发现复合索引在那里。我怀疑我的 t2 综合索引甚至不起作用。
而且我认为不是内存缓冲区的问题,否则,经过我 5 分钟的密集查询测试后,t2 应该会恢复正常。