问题标签 [database-indexes]

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.

0 投票
1 回答
110 浏览

postgresql - PostgreSQL 9.1 数组索引

什么索引将提高表的数据库性能

对于请求WHERE my_table.word_set @> '<some word>'

0 投票
2 回答
4429 浏览

sql-server - SQL Server 是否支持哈希索引?

SQL Server B 树中的所有索引都在吗?
当然主键和外键应该是基于哈希的索引?

0 投票
1 回答
19196 浏览

cassandra - 为什么 Cassandra 中的超级列不再受青睐?

我在最新版本中读到,由于“性能问题”,超级列是不可取的,但没有在哪里解释。

然后我阅读了这篇文章,这些文章使用超级列提供了出色的索引模式。

这让我不知道目前在 Cassandra 中进行索引的最佳方法是什么。

  1. 超级列的性能问题是什么?
  2. 在哪里可以找到当前的索引最佳实践?
0 投票
1 回答
51 浏览

mysql - MySQL 索引更新

假设我有 3 列,“Col1、Col2 和 Col3”,并且在 Col1 上有一个索引。如果我对 Col3 中的数据进行更新(例如:更改一个 int),是否必须重新制作或再次更新索引,即使我根本没有触及索引列(Col1 的)数据?

0 投票
2 回答
2494 浏览

indexing - Cassandra 1.1 存储引擎如何存储复合材料?

当涉及到复合列时,我试图了解 Cassandra 的存储引擎。不幸的是,到目前为止我阅读的文档包含错误,让我有点空白。

首先,术语。

复合列使用复合主键包含完全非规范化的宽行。

这似乎具有误导性,因为根据 AFAIK,复合列可以用于复合键,也可以简单地用作键之外的复合列。

1:复合键和列名是如何实现的?我能找到的每个 CQL 示例仅将复合键显示为列,而不是普通的复合列。

假设我们有列'a'、'b'、'c'、'd'作为主复合键+列'e'、'f'。我知道 'a' 将是行和分区键。

让我们假设以下数据:

2:这是如何存储在引擎盖下的?我想这里真正的问题是'b'、'c'、'd' 是如何映射出来的,因为根据定义,列不是分层的。

3:我阅读的文档说不应再使用紧凑型存储。但是如果不需要添加非主键列怎么办......那不使用它的原因是什么?

0 投票
2 回答
734 浏览

database - 数据库索引示例

关于数据库索引如何工作的一个简单问题。

假设我有一个表 'Student' 列 id(primary_key)、name 和 GPA。假设我在 id 和其他列上没有索引

现在,如果我使用名称和 GPA(不使用 id)查询记录,它必须搜索所有记录以查找匹配项。索引在这里有什么好处?

索引是否仅在查询包含索引列时才有效?

0 投票
1 回答
701 浏览

cassandra - Cassandra 1.1 复合键/列和分层查询

到目前为止,这是我对当前 Cassandra 架构的理解:

  1. 由于性能问题,不再需要超级列。
  2. 复合列(实际上是键)是索引分层键的好选择。
  3. 复合列按排序顺序存储嵌套组件。没有实际的索引。

我有一些疑问:

  1. 我所说的一切都正确吗?
  2. 复合列能否有效地处理每个组件的范围查询(假设逻辑使用)?
  3. 复合列是否适合大量行,同时仍能产生快速查询结果(考虑到它们本身不是索引)?
  4. 是否可以针对复合列创建二级索引。如果是,是否可以有效地执行范围查询?

提前致谢。

0 投票
2 回答
659 浏览

database - DB 设计和性能:使用冗余 FK 来提高性能是否可行?

假设我有以下数据库结构:
标准化数据库结构
并且我的应用程序需要显示包含所有详细信息(型号、产品系列、品牌、生产商)的文章列表。为此,我需要进行更多的 JOIN 以获得所需的数据。

如果我通过为 Article 表创建冗余 FK 来提高应用程序的性能,是否可以,如下所示?它真的提高了性能吗?
具有冗余 FK 的 DB 结构

0 投票
2 回答
7975 浏览

mysql - EXPLAIN SELECT 显示 MySQL 没有使用我的索引

表定义,注意UNIQUE索引:

因此,MySQL 应该在搜索中使用索引,例如WHERE name = 'tag' and type = 'cat'以及 only (leftmost prefixing) WHERE type = 'tag'

我做了:

结果是(第五列是possible_keys):

我确定我错过了一些东西,但找不到什么。有什么线索吗?

0 投票
1 回答
404 浏览

mongodb - MongoDB - 具有许多排列的搜索引擎

我们有一个 mongo 集合,可以在许多领域进行搜索和排序。举个例子(对不起,由于保密,我不能放真正的收藏),我们采取:

我们可以搜索 Creator、Difficulty、Categorie、NbOfQuestion。并按喜欢、不喜欢、成功和失败进行排序。

前任:

  • 给我难度 3 的问题,类别 20 按点赞数排序。
  • 给我 5 个问题的问题,按失败排序。
  • 给我难度为 1、类别 10、2 的问题,由 Einstein 创建。
  • 给我所有按成功排序的问题。

等等......你得到的图片所有的排列都是可能的,我们可以选择在一个字段上排序。

这里的问题是我们有数百万条记录。索引花费我们至少 30 gig。另外,因为我们有这么多的索引,它压低了这个集合的写入速度。虽然它正在破坏写作,但它正在锁定阅读。所以我们读了很多,写的可能少了一点,但仍然很多。

我搜索“搜索引擎解决方案”,但我只能在“全文搜索”上找到东西,这不是我的情况。

我们还尝试将难度、Categorie 和 NbOfQuestion 合并到一个数组中(通过将值乘以 10 因子以保持它们之间的一致性)以仅在该数组上建立索引并节省一些空间。

任何事后诸葛亮将不胜感激!

谢谢,

查尔斯