标签: database-indexes

数据库索引如何工作?

鉴于索引在数据集大小增加时非常重要,有人可以解释索引在数据库无关的级别上的工作原理吗?

有关索引字段的查询的信息,请查看如何索引数据库列.

sql database indexing performance database-indexes

2335
推荐指数
8
解决办法
82万
查看次数

MongoDB中的索引列表?

有没有办法在shell中的mongodb中查看集合中的索引列表?我通过http://www.mongodb.org/display/DOCS/Indexes阅读,但我什么也看不见

database indexing mongodb database-indexes mongodb-indexes

92
推荐指数
5
解决办法
3万
查看次数

PostgreSQL:你能在CREATE TABLE定义中创建一个索引吗?

我想在创建时为表中的某些列添加索引.是否有办法将它们添加到CREATE TABLE定义中,或者我是否必须在其后使用其他查询添加它们?

CREATE INDEX reply_user_id ON reply USING btree (user_id);
Run Code Online (Sandbox Code Playgroud)

postgresql database-schema database-indexes

90
推荐指数
3
解决办法
3万
查看次数

rename_column会处理索引吗?

说,我们有这样的事情:

add_column :users, :single, :boolean
add_index :users, :single
Run Code Online (Sandbox Code Playgroud)

然后我们做

rename_column :users, :single, :married
Run Code Online (Sandbox Code Playgroud)

ActiveRecord和/或数据库是否也会处理索引的重命名,还是我必须手动删除索引并再次添加它?

activerecord ruby-on-rails database-indexes ruby-on-rails-3 rails-activerecord

58
推荐指数
1
解决办法
1万
查看次数

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

想象一下,有一个包含多列的表格id, a, b, c, d, e.我通常选择id,但是,客户端应用程序中有多个查询使用各种条件而不是列的子集.

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

mysql indexing database-indexes

45
推荐指数
4
解决办法
3万
查看次数

为什么Cassandra的超级专栏不再受青睐?

我在最新版本中读到,由于"性能问题",超级列不可取,但没有解释的位置.

然后我读了这篇文章,这些文章使用超级列提供了精彩的索引模式.

这让我不知道目前在Cassandra做索引的最佳方法是什么.

  1. 超级列的性能问题是什么?
  2. 我在哪里可以找到当前的索引编制最佳实践?

indexing cassandra database-indexes super-columns

28
推荐指数
1
解决办法
2万
查看次数

我如何知道何时索引列,以及什么?

在各种ORM的文档中,它们总是提供创建索引等的方法.他们总是提到要确保为效率创建适当的索引,就好像这是非手写SQLer的固有知识,需要使用ORM.我对索引(PK之外)的理解基本上是:如果您打算LIKE根据列的内容进行查询(即搜索),则应该为该列使用全文索引.关于指数(主要与效率有关),我还应该知道什么?我觉得我的门口有一个知识世界,但是它下方有一个巨大的折叠式鼠标垫,所以我无法通过(我不知道为什么我觉得我需要这么说,但是谢谢你提供沙发).

database database-optimization database-indexes

23
推荐指数
1
解决办法
1万
查看次数

Neo4j:逐步创建自动索引

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

# Autoindexing

# Enable auto-indexing for nodes, default is false
node_auto_indexing=true

# The node property keys to be auto-indexed, if enabled
node_keys_indexable=EmailAddress,Identifier
Run Code Online (Sandbox Code Playgroud)

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

START n=node:Identifier(Identifier = "USER0")
RETURN n;
Run Code Online (Sandbox Code Playgroud)

然后我得到了

MissingIndexException: Index `Identifier` does not exist
Run Code Online (Sandbox Code Playgroud)

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

database indexing neo4j database-indexes cypher

23
推荐指数
3
解决办法
2万
查看次数

Cassandra:选择分区键

我不确定使用非常常见的共享列值(如Country)作为复合主键的分区键还是相当独特的列值(如Last_Name),在性能方面是否更好.

看看Cassandra 1.2关于索引的文档,我得到了这个:

" 何时使用索引:Cassandra的内置索引最适合包含索引值的许多行的表.特定列中存在的唯一值越多,平均而言,查询和查询的开销就越大.维护索引.例如,假设您有一个拥有十亿用户的用户表,并希望按照他们所居住的状态查找用户.许多用户将共享相同的状态列值(例如CA,NY,TX等) .).这将是一个指数的良好候选人. "

" 何时不使用索引:不要使用索引来查询少量结果的大量记录.例如,如果在具有许多不同值的列上创建索引,则字段之间的查询将招致许多寻求极少数的结果.在该表中有一个十亿用户,查找通过他们的电子邮件地址(也就是通常是唯一针对每个用户的值)的用户,而不是由他们的状态,很可能是非常低效的.它可能会更有效地手动维护表作为索引的一种形式,而不是使用Cassandra内置索引.对于包含唯一数据的列,为方便起见,使用索引有时性能良好,只要查询量到具有索引列的表是适度的而不是在恒定负载下."

查看CQL的SELECT for 中的示例

" 查询复合主键和排序结果 ",我看到类似UUID的东西被用作分区键... 这表明最好使用一些相当独特的东西

在此输入图像描述

cassandra database-partitioning composite-primary-key database-indexes

23
推荐指数
2
解决办法
2万
查看次数

Django:unique_together暗示db_index = True与ForeignKey一样吗?

模型上的字段foo = models.ForeignKey(Foo)将自动为列添加数据库索引,以便更快地查找.这很好,但Django的文档没有说明模型元中的字段是否unique_together接受相同的处理.我碰巧有一个模型,其中列出的一个char字段unique_together需要一个快速查找索引.我知道db_index=True在字段定义中添加副本不会有任何损害,但我很好奇.

python django django-models database-indexes

20
推荐指数
4
解决办法
6521
查看次数