願わくば、各データベース サーバーについて回答を得ることができれば幸いです。
インデックス作成の仕組みの概要については、データベースのインデックス作成はどのように機能しますか?を参照してください。
願わくば、各データベース サーバーについて回答を得ることができれば幸いです。
インデックス作成の仕組みの概要については、データベースのインデックス作成はどのように機能しますか?を参照してください。
以下は SQL92 標準であるため、SQL を使用する大多数の RDMBS でサポートされているはずです。
CREATE INDEX [index name] ON [table name] ( [column name] )
Sql Server 2005
カバリング インデックスを指定できます。これは、リーフ レベルで他の列のデータを含むインデックスであるため、インデックス キーに含まれていない列を取得するためにテーブルに戻る必要はありません。
create nonclustered index my_idx on my_table (my_col1 asc, my_col2 asc) include (my_col3);
my_col3
これは、select リストとmy_col1
wheremy_col2
句にあるクエリにとって非常に貴重です。
Python pytables の場合、インデックスには名前がなく、単一の列にバインドされます。
tables.columns.column_name.createIndex()
SQL Server では、次のことができます: (オプションの完全なリストへのMSDN リンク。)
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name
ON <object> ( column [ ASC | DESC ] [ ,...n ] )
[ INCLUDE ( column_name [ ,...n ] ) ]
[ WHERE <filter_predicate> ]
(いくつかの高度なオプションは無視します...)
各インデックスの名前は、データベース全体で一意である必要があります。
すべてのインデックスは複数の列を持つことができ、各列は任意の順序で並べることができます。
クラスタ化インデックスは一意で、テーブルごとに 1 つです。INCLUDE
d 列を持つことはできません。
非クラスター化インデックスは一意ではなく、テーブルごとに最大 999 個持つことができます。列と where 句を含めることができます。
インデックスを作成するには、次のものを使用できます。
テーブルにインデックスを作成します。重複する値が許可されています。
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を参照してください。
すべてのデータベースに必ずしも索引が必要なわけではありません。例: Kognitio 別名 WX2 エンジンは、データベース エンジンが暗黙的に処理するため、インデックス作成の構文を提供しません。データはラウンド ロビン パーティショニングを介して処理され、Kognitio WX2 は可能な限り簡単な方法でディスク上およびディスク外にデータを取得します。