66

願わくば、各データベース サーバーについて回答を得ることができれば幸いです。

インデックス作成の仕組みの概要については、データベースのインデックス作成はどのように機能しますか?を参照してください。

4

9 に答える 9

70

以下は SQL92 標準であるため、SQL を使用する大多数の RDMBS でサポートされているはずです。

CREATE INDEX [index name] ON [table name] ( [column name] )
于 2008-08-04T11:25:14.017 に答える
7

Sql Server 2005カバリング インデックスを指定できます。これは、リーフ レベルで他の列のデータを含むインデックスであるため、インデックス キーに含まれていない列を取得するためにテーブルに戻る必要はありません。

create nonclustered index my_idx on my_table (my_col1 asc, my_col2 asc) include (my_col3);

my_col3これは、select リストとmy_col1wheremy_col2句にあるクエリにとって非常に貴重です。

于 2008-08-13T14:05:26.880 に答える
4

Python pytables の場合、インデックスには名前がなく、単一の列にバインドされます。

tables.columns.column_name.createIndex()
于 2012-01-23T15:13:48.257 に答える
4

SQL Server では、次のことができます: (オプションの完全なリストへのMSDN リンク。)

CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name 
    ON <object> ( column [ ASC | DESC ] [ ,...n ] ) 
    [ INCLUDE ( column_name [ ,...n ] ) ]
    [ WHERE <filter_predicate> ]

(いくつかの高度なオプションは無視します...)

各インデックスの名前は、データベース全体で一意である必要があります。

すべてのインデックスは複数の列を持つことができ、各列は任意の順序で並べることができます。

クラスタ化インデックスは一意で、テーブルごとに 1 つです。INCLUDEd 列を持つことはできません。

非クラスター化インデックスは一意ではなく、テーブルごとに最大 999 個持つことができます。列と where 句を含めることができます。

于 2012-06-15T18:01:12.187 に答える
2

インデックスを作成するには、次のものを使用できます。

  1. テーブルにインデックスを作成します。重複する値が許可されています。 CREATE INDEX index_name ON table_name (column_name)

  2. テーブルに一意のインデックスを作成します。重複する値は許可されていません。 CREATE UNIQUE INDEX index_name ON table_name (column_name)

  3. クラスタ化インデックス:CREATE CLUSTERED INDEX CL_ID ON SALES(ID);

  4. 非クラスター化インデックス:
    CREATE NONCLUSTERED INDEX NONCI_PC ON SALES(ProductCode);

詳細については、http: //www.codeproject.com/Articles/190263/Indexes-in-MS-SQL-Serverを参照してください。

于 2015-06-02T13:38:43.480 に答える
0

すべてのデータベースに必ずしも索引が必要なわけではありません。例: Kognitio 別名 WX2 エンジンは、データベース エンジンが暗黙的に処理するため、インデックス作成の構文を提供しません。データはラウンド ロビン パーティショニングを介して処理され、Kognitio WX2 は可能な限り簡単な方法でディスク上およびディスク外にデータを取得します。

于 2018-06-05T10:24:47.673 に答える