希望我能为每个数据库服务器获得答案。
有关索引编制方式的概述,请查看:How does database indexing work?
答案 0 :(得分:61)
以下是SQL92标准,因此应该使用SQL的大多数RDBMS支持:
CREATE INDEX [index name] ON [table name] ( [column name] )
答案 1 :(得分:6)
Sql Server 2005
使您能够指定覆盖索引。这是一个包含叶级别其他列的数据的索引,因此您不必返回到表中以获取未包含在索引键中的列。
create nonclustered index my_idx on my_table (my_col1 asc, my_col2 asc) include (my_col3);
对于在选择列表中有my_col3
,在where子句中有my_col1
和my_col2
的查询,这是非常宝贵的。
答案 2 :(得分:4)
对于python pytables,索引没有名称,它们绑定到单个列:
tables.columns.column_name.createIndex()
答案 3 :(得分:4)
在SQL Server中,您可以执行以下操作:(MSDN Link到完整的选项列表。)
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name
ON <object> ( column [ ASC | DESC ] [ ,...n ] )
[ INCLUDE ( column_name [ ,...n ] ) ]
[ WHERE <filter_predicate> ]
(忽略一些更高级的选项......)
每个索引的名称必须是唯一的数据库范围。
所有索引都可以有多个列,每个列都可以按照您想要的顺序排序。
聚簇索引是唯一的 - 每个表一个。他们不能拥有INCLUDE
d列。
非聚簇索引不是唯一的,每个表最多可以有999个。他们可以包含列和where子句。
答案 4 :(得分:2)
要创建索引,可以使用以下内容:
在表格上创建索引。允许重复的值:
CREATE INDEX index_name
ON table_name (column_name)
在表格上创建唯一索引。不允许重复值:
CREATE UNIQUE INDEX index_name ON table_name (column_name)
聚集索引:CREATE CLUSTERED INDEX CL_ID ON SALES(ID);
CREATE NONCLUSTERED INDEX NONCI_PC ON SALES(ProductCode);
请参阅:http://www.codeproject.com/Articles/190263/Indexes-in-MS-SQL-Server了解详情。
答案 5 :(得分:1)
CREATE INDEX name_index ON Employee (Employee_Name)
在多列:CREATE INDEX name_index ON Employee (Employee_Name, Employee_Age)
答案 6 :(得分:0)
由于大多数答案都是针对SQL数据库的,因此我为NOSQL数据库编写了这个,特别是针对MongoDB。
以下是使用mongo shell在MongoDB中创建索引的语法。
db.collection.createIndex( <key and index type specification>, <options> )
示例 - db.collection.createIndex( { name: -1 } )
在上面的示例中,在名称上创建了单个键降序索引 领域。
请记住,MongoDB索引使用B树数据结构。
我们可以在mongodb中创建多种类型的索引,有关更多信息,请参阅以下链接 - https://docs.mongodb.com/manual/indexes/
答案 7 :(得分:0)
并非所有数据库都需要索引。例如:Kognitio aka WX2引擎不提供索引语法,因为数据库引擎隐式地处理它。数据通过循环分区继续进行,Kognitio WX2以最简单的方式获取磁盘上和磁盘外的数据。
答案 8 :(得分:0)
我们可以使用以下语法创建索引。
CREATE INDEX <index_name> ON <table_name>(<column_name>)
如果我们不想允许重复值,则可以在创建索引时添加 UNIQUE ,如下所示
CREATE UNIQUE INDEX <index_name> ON <table_name>(<column_name>)
我们可以在多列上创建索引,方法是提供多个以','
分隔的列名