鉴于索引在数据集大小增加时非常重要,有人可以解释索引在数据库无关的级别上的工作原理吗?
有关索引字段的查询的信息,请查看如何索引数据库列.
有没有办法在shell中的mongodb中查看集合中的索引列表?我通过http://www.mongodb.org/display/DOCS/Indexes阅读,但我什么也看不见
我想在创建时为表中的某些列添加索引.是否有办法将它们添加到CREATE TABLE定义中,或者我是否必须在其后使用其他查询添加它们?
CREATE INDEX reply_user_id ON reply USING btree (user_id);
Run Code Online (Sandbox Code Playgroud) 说,我们有这样的事情:
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
想象一下,有一个包含多列的表格id, a, b, c, d, e.我通常选择id,但是,客户端应用程序中有多个查询使用各种条件而不是列的子集.
当MySQL在多个列上具有多个WHERE条件的单个表上执行查询时,它是否真的可以使用在不同列上创建的索引?或者,使其快速的唯一方法是为所有可能的查询创建多列索引?
我在最新版本中读到,由于"性能问题",超级列不可取,但没有解释的位置.
然后我读了这篇文章,这些文章使用超级列提供了精彩的索引模式.
这让我不知道目前在Cassandra做索引的最佳方法是什么.
在各种ORM的文档中,它们总是提供创建索引等的方法.他们总是提到要确保为效率创建适当的索引,就好像这是非手写SQLer的固有知识,需要使用ORM.我对索引(PK之外)的理解基本上是:如果您打算LIKE根据列的内容进行查询(即搜索),则应该为该列使用全文索引.关于指数(主要与效率有关),我还应该知道什么?我觉得我的门口有一个知识世界,但是它下方有一个巨大的折叠式鼠标垫,所以我无法通过(我不知道为什么我觉得我需要这么说,但是谢谢你提供沙发).
我正在创建一个新的Neo4j数据库.我有一种名为User的节点,我想要一个关于用户Identifier和EmailAddress属性的索引.如何在数据库是新的时设置索引?我注意到在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来实现这一点.即目前我只在电动工具控制台玩.
我不确定使用非常常见的共享列值(如Country)作为复合主键的分区键还是相当独特的列值(如Last_Name),在性能方面是否更好.
看看Cassandra 1.2关于索引的文档,我得到了这个:
" 何时使用索引:Cassandra的内置索引最适合包含索引值的许多行的表.特定列中存在的唯一值越多,平均而言,查询和查询的开销就越大.维护索引.例如,假设您有一个拥有十亿用户的用户表,并希望按照他们所居住的状态查找用户.许多用户将共享相同的状态列值(例如CA,NY,TX等) .).这将是一个指数的良好候选人. "
" 何时不使用索引:不要使用索引来查询少量结果的大量记录.例如,如果在具有许多不同值的列上创建索引,则字段之间的查询将招致许多寻求极少数的结果.在该表中有一个十亿用户,查找通过他们的电子邮件地址(也就是通常是唯一针对每个用户的值)的用户,而不是由他们的状态,很可能是非常低效的.它可能会更有效地手动维护表作为索引的一种形式,而不是使用Cassandra内置索引.对于包含唯一数据的列,为方便起见,使用索引有时性能良好,只要查询量到具有索引列的表是适度的而不是在恒定负载下."
查看CQL的SELECT for 中的示例
" 查询复合主键和排序结果 ",我看到类似UUID的东西被用作分区键... 这表明最好使用一些相当独特的东西?

cassandra database-partitioning composite-primary-key database-indexes
模型上的字段foo = models.ForeignKey(Foo)将自动为列添加数据库索引,以便更快地查找.这很好,但Django的文档没有说明模型元中的字段是否unique_together接受相同的处理.我碰巧有一个模型,其中列出的一个char字段unique_together需要一个快速查找索引.我知道db_index=True在字段定义中添加副本不会有任何损害,但我很好奇.
database-indexes ×10
indexing ×5
database ×4
cassandra ×2
activerecord ×1
cypher ×1
django ×1
mongodb ×1
mysql ×1
neo4j ×1
performance ×1
postgresql ×1
python ×1
sql ×1