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

mysql - 应该为这个 MySQL 查询创建什么索引

如果我有以下查询,可以创建哪些索引来加快速度?

仅供参考,这个查询是由 Rails 生成的,所以我无法完全控制它的构造方式。

使用 EXPLAIN 会产生以下结果:

编号 = 1

选择类型 = 简单

表 = 住宅

类型 = 范围

possible_keys = index_residentials_on_list_price,index_residentials_on_property_style,index_residentials_on_square_feet,index_residentials_on_modified,index_residentials_on_is_active,index_residentials_on_is_active_and_board_id,index_residentials_is_active_board_id_list_price_property_type,index_residentials_on_is_active_and_created_at_and_modified,dates_and_type,dates_type_price,board_price_type_zip,board_price_type_zip_mls

关键 = index_residentials_on_list_price

key_len = 6

参考 = 空

行 = 209272

额外 = 使用 where

0 投票
1 回答
858 浏览

tsql - 搜索字段上的 TSQL 索引,我应该包括 Id

假设我有一个典型的客户表;

所以主键在 Id 上创建了一个聚集唯一索引。

为了使搜索更快,我想为名称字段添加索引。

我的问题是我是否应该将 Id 添加到这些索引中,或者这些索引是否会与主键相关联。

例如;

……是不是太过分了?

以下是或多或少有效吗?

TIA

0 投票
1 回答
188 浏览

database - 分析 DB2 的 TCB 索引状态

以下是我可以使用我的 DB2 数据库的命令获得的 TCB 索引。我不知道怎么分析。哪些列很重要?他们的意思是什么?我知道这是一个新手问题,但请帮助我。

TCB 指数统计:

0 投票
1 回答
443 浏览

mysql - add_index 在 Rails 3 中不起作用

我在 Rails 3.2.3 应用程序中,我正在为我的数据库迁移中的外键添加索引。但是,在运行迁移后,键似乎没有被索引。我已经直接通过 mysql 控制台进行了测试。这就是我所做的,更好地描述:

我有一个Car与模型相关的Owner模型,例如:

由于这些是现有的数据库表,我创建了另一个迁移来添加索引,我把:

然后我运行了迁移,根据 Rails 一切都很好。但是当我登录到我的 mysql 并运行 EXPLAIN 查询时,我在owner_index列中看不到key

理论上(根据这篇文章),前一个查询中的键列应该返回owner_index而不是NULL

我做错了什么吗?我错过了什么?

0 投票
1 回答
5098 浏览

mysql - 主索引与二级索引:性能差异

我有一个小问题:主索引和二级索引的性能有什么区别?是什么导致了这种差异?

我在谷歌搜索,我发现二级索引存储在另一个表中,所以这会减慢所有操作。但是还有其他一些原因可以证明性能下降是合理的?

非常感谢

0 投票
2 回答
725 浏览

sql - postgres 上的这个延迟作业查询的最佳索引是什么?

delay_job 定期执行这样的查询:

我在我相当大的数据库机器上的日志报告说它需要四分之一秒才能运行。我可以在所有被选中的列上添加一些索引,但我可能可以从多列索引中获得更多性能。

我可以为此查询创建的最佳多列索引是什么?有什么工具可以为我计算这个吗?

更新

postgres 版本:9.1.3

一个现有索引:priority, run_at(名为“delayed_jobs_priority”)

explain analyze

0 投票
1 回答
103 浏览

mysql - MySQL:使用索引对大表执行更新

晚上,

我有一个大而简单的表,有近 3000 万行。该表具有大多数列的索引。对其执行任何更新需要很长时间,我想知道在完成对表的更改后删除索引并重新构建它们是否是个好主意?

我问的原因是因为我在这里阅读了一些帖子,人们无法在大表上重新构建索引。但是,我不明白为什么会这样,因为我可以在 20 分钟内从 2.2GB 文本文件中导入此表。

该表由几个小整数和 varchars 组成。

我运行的更新查询如下:

它们并不太慢,但我目前正在将其中一个字段从 varchar(4) 更改为 varchar(8),这需要很长时间。

我从命令行 (Linux) 运行更新查询。

0 投票
1 回答
121 浏览

mongodb - 在 mongodb 中查找最新帖子

我正在分析 mongo 数据库。为了分析数据,必须找到过去一周创建的所有文档。目前,数据库有一个与每个文档关联的创建时间字段,该字段以 mongo 的默认 BSON 格式存储。由于集合会很大,我需要一种快速的方法来做同样的事情。

该数据库仍在进行中,因此可以向其中添加更多字段/索引,如果它有助于进行快速查询。

最快的方法是什么?

0 投票
1 回答
116 浏览

mysql - MySQL 不会在简单的选择查询中使用我定义的索引

我一直在尝试在查询中使用索引,但无济于事。它已定义,但未使用。

这是我的索引

这是我的查询+解释:

该表有 9825 行,而我选择的日期是最新的 9 行之一。所以它应该只扫描了 9 行。

有任何想法吗?谢谢

0 投票
1 回答
484 浏览

sql - 在需要日期但没有日期列时实现分区的最佳方法

我对如何处理这个有自己的想法,但想看看是否有不同的观点。我遇到的问题是我有以下表格(示例表)

假设 Account 表为 500GB,AccountSales 为 1TB。出于明显的原因,我想对这些表进行分区。当前逻辑的工作方式是每天处理数据,因此对 Account 表的日期字段进行分区是有意义的,但是 AccountSales 表没有日期字段。此外,当涉及到 id 和 date 时,两个表中的数据也不是连续的,因为数据是在不同时间从不同服务器加载的。所以like账户可能有以下数据

我正在考虑只在 CreationDate 上创建聚集索引并将 AccountId 设置为具有唯一 NC 索引的 PK 的 Accounts 表。然后我会在日期上进行分区。

不过,我不能 100% 确定如何处理 AccountSales 表 - 因为如果我通过 id 进行操作,如果与 Account 表连接,日期将无法正确匹配,但是我看不到解决此问题的方法。

有任何想法吗?处理这个问题的最佳方法是什么?如果需要更多信息,请告诉我。谢谢,如果提前!