3列のテーブルがあります。
_id (primary key) word (unique) frequency
SQLite.swiftで、このようなテーブルを作成します
try db.run( userDictionary.create(ifNotExists: true) {t in
t.column(wordId, primaryKey: true)
t.column(word, unique: true)
t.column(frequency, defaultValue: 1)
})
私はSQLiteの構文が
CREATE TABLE "words" (
"_id" INTEGER PRIMARY KEY NOT NULL,
"word" TEXT UNIQUE NOT NULL,
"frequency" INTEGER DEFAULT 1
)
「単語」列に頻繁にクエリを実行する必要があるため、パフォーマンスを高速化するために「単語」列にインデックスを追加する準備をしていました。しかしその後、TutorialsPoint による Indexes チュートリアルで次の興味深いステートメントを読みました。
暗黙的なインデックス:
暗黙的なインデックスは、オブジェクトの作成時にデータベース サーバーによって自動的に作成されるインデックスです。主キー制約と一意性制約のインデックスは自動的に作成されます。
したがって、「単語」列には既に一意制約を追加しているので、他に何もする必要はありません。あれは正しいですか?SQLiteのドキュメントでこれを確認しようとしましたが、見つかりませんでした。