问题标签 [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 投票
4 回答
50268 浏览

mysql - MySQL 可以为单个查询使用多个索引吗?

想象一个具有多列的表,例如id, a, b, c, d, e. 我通常选择 by id,但是,客户端应用程序中有多个查询,它们对列的子集使用各种条件。

当 MySQL 对单个表执行多个列上的多个 WHERE 条件的查询时,它真的可以利用在不同列上创建的索引吗?或者让它快速的唯一方法是为所有可能的查询创建多列索引?

0 投票
2 回答
2548 浏览

indexing - CQL 3 中的 Cassandra 1.1 复合键、列和过滤

我希望有一个如下表:

共有13个字段。其中大多数代表存储桶。数据是产品系列 ID 的 JSON,然后在后续查询中使用。鉴于 Cassandra 的工作方式,引擎盖下的列名将是值。我想过滤这些。

我希望按如下方式运行查询:

  1. 我读到 Cassandra 只能针对复合行键或索引列执行 WHERE 谓词。这仍然是真的吗?如果是这样,我将不得不使列 < Data 成为 PK 的一部分。
  2. 是否仍然必须从左到右包含所有列并且不能跳过任何列?
  3. 我的设计中是否有任何非最佳点?
  4. 我想添加一列“材料”,它是产品系列中可能的材料数组。想想披萨配料,并查询“WHERE Materials IN ('Pineapple')”。在不创建单独的材料倒排索引然后对上述查询执行手动交集的情况下,在 Cassandra 中是否还有其他 [更优雅] 的处理方式?
0 投票
2 回答
98 浏览

mysql - 在 SQL 语句中添加附加项会导致性能下降

我有一个如下所示的 sql 语句:

WHERE 语句中的所有列都是索引列。

当我运行它时,它需要一秒钟。但是,当我在没有其他 Id3 的情况下运行它时,性能会大大提高(0.03 秒)。

当我使用 otherId3 运行解释时,它使用使用 otherId1 和 otherId3 的索引合并。但是,当我删除 otherId3 时,它使用 otherId2 的单个索引。

为什么添加 otherId3 会对性能产生影响?

表结构:

索引

0 投票
1 回答
196 浏览

mysql - MySQL BETWEEN 索引

我必须弄清楚一个数字(由于前导零而存储为字符串)是否落在特定范围内。范围如下所示:

1233435 将被视为属于第一个范围(匹配从左侧开始)。该数字最多可以有 20 位数字,我有一个包含所有范围的文件。我导入了范围,将尾随零添加到下限,尾随九添加到上限以达到 20 的长度。这是为了能够处理可变长度数字 - 它们在右侧填充零,以便我可以执行以下查询:

由于我有几千个范围,我想在表格上放一个索引,但我不确定如何实现这一点。

谢谢,孟德尔

0 投票
1 回答
438 浏览

mysql - MySQL插入,重更新,按索引排序

我目前正在设计一个数据库,该数据库具有一个events插入(和更新)大量的表(我预测每分钟插入 1,000 到 5,000 次),但也需要按日期排序。

每个事件都有一个read布尔字段 ,并按(datetime)user_id排序。选择语句将类似于updated_atDESC

现在,我正在考虑在 、 和 上使用索引readuser_id优化updated_at获取和排序,但这是否意味着整个索引将在

?

在这种情况下,性能效率最高的(插入、更新、选择)解决方案是什么?

0 投票
1 回答
647 浏览

sql - 如何为 SQL 表达式创建数据库索引?

我是索引的初学者。我想为这个 SQL 表达式创建索引,这需要太多时间来执行,所以我想在哪些确切的列上创建索引?我正在使用 DB2 db,但没关系,我认为这个问题很笼统。

我的 SQL 表达式是:

我应该用这 5 列创建索引还是如何创建索引?

谢谢

0 投票
3 回答
2646 浏览

sql - 如何使用索引优化 SELECT * 命令?

我是索引新手,我有大问题。

我的查询SELECT * FROM TABLE持续时间过长。

是否可以使用索引对其进行优化以获得更快的结果?

我知道索引对WHERE子句和类似内容很有用,但这是SELECT *

我有超过 20 万条记录,当然它们都有唯一的 ID。

只需创建一个带有 ID 列的索引就足够了,或者最好的策略是什么?

0 投票
3 回答
19361 浏览

database - Neo4j:逐步创建自动索引

我正在创建一个新的 Neo4j 数据库。我有一种名为 User 的节点,我想要一个关于 user IdentifierEmailAddress属性的索引。当数据库是新的时,如何设置索引?我注意到在 neo4j.properties 文件中似乎支持创建索引。但是,当我将这些设置为

并添加一个节点并进行查询以查找我知道存在的标识符

然后我得到一个

如何创建索引并在开始查询中使用它?我只想使用配置文件和密码来实现这一点。即目前我只玩电动工具控制台。

0 投票
1 回答
288 浏览

ssis - 刷新具有索引和约束的表

我有以下场景,我需要在 SQL Server 2008 R2 中使用位于另一台服务器上的数据重新加载表。目标表具有索引(集群和非集群)和约束(多个表的外键),而主键也是另一个单独表的外键。目标表上的主键也是一个身份。

我会说,在处理这种情况时,最合适的“最佳实践”是什么?

以下是否合理:

  • 删除目标表上的索引 - (SQL 脚本任务)
    • 首先删除非聚集索引
    • 二、drop聚集索引
  • 从源表到目标表的数据流点。
    • 在目标编辑器中,选中 Keep Identity、Keep nulls,并取消选中 Check constraint
  • 在目标表上创建索引 -(SQL 脚本任务)

请注意,源表和目标表中的表结构和约束应相同。换句话说,从 QA 到开发,每件事都只是重新加载数据。

0 投票
3 回答
13262 浏览

mysql - 重复更新不适用于唯一索引

我试图插入/更新的我的 SQL 表有这个定义:

如您所见, some_id 和 someOther_id 共享一个索引。

我正在尝试执行我的插入/更新语句,如下所示:

我希望因为我没有指定 id,所以它将回退到索引键 (some_id_index1) 作为插入/更新规则。但是,它只是插入。

显然这是不正确的。我在这里做错了什么?