私は3つの列を持つテーブルを持っています。 SQLite.swiftでUNIQUE制約を持つ列にインデックスを作成する必要はありません。
_id (primary key) word (unique) frequency
私はこの
try db.run(userDictionary.create(ifNotExists: true) {t in
t.column(wordId, primaryKey: true)
t.column(word, unique: true)
t.column(frequency, defaultValue: 1)
})
のような表を作成し、私は「言葉」列に索引を追加するために準備していた
CREATE TABLE "words" (
"_id" INTEGER PRIMARY KEY NOT NULL,
"word" TEXT UNIQUE NOT NULL,
"frequency" INTEGER DEFAULT 1
)
だろうSQLiteの構文を信じます頻繁にクエリを実行する必要があるため、パフォーマンスを向上させることができます。
暗黙のインデックス:しかし、私は Indexes tutorial by TutorialsPointで次興味深いの文を読んでが暗黙のインデックスは、オブジェクトが作成されたときに自動的に データベースサーバによって作成されたインデックスです。 インデックスは自動的に主キー制約とユニーク制約のために作成 です。
「ワード」列に既に一意の制約が追加されているため、他に何もする必要はありません。あれは正しいですか?私はSQLite documentationでこれを確認しようとしましたが、見つけられませんでした。
[Documentation](http://www.sqlite.org/fileformat2.html#sqlite_master):「テーブルのUNIQUEおよびPRIMARY KEY制約により、SQLiteが内部索引を作成する」 –
@ CL。ドキュメントのリンクをありがとう。それは公式の情報源でそれを見ることを安心して助けます。 – Suragch