gpt4 book ai didi

sql - 不需要在具有 UNIQUE 约束的列上创建索引,对吧?

转载 作者:IT王子 更新时间:2023-10-29 06:32:12 26 4
gpt4 key购买 nike

我有一个包含三列的表格。

_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
)

我正准备在“word”列上添加索引以提高性能,因为我将不得不对其进行频繁查询。但后来我在 Indexes tutorial by TutorialsPoint 中读到以下有趣的陈述:

Implicit Indexes:

Implicit indexes are indexes that are automatically created by the database server when an object is created. Indexes are automatically created for primary key constraints and unique constraints.

因此,由于我已经向“word”列添加了唯一约束,因此无需执行任何其他操作。那是对的吗?我试图在 SQLite documentation 中确认这一点但我找不到它。

最佳答案

正确。 UNIQUE 创建索引。这就是大多数数据库实际执行它的方式。

想象一下他们没有创建索引,会发生什么。他们实际上需要对每个插入进行全表扫描,这意味着性能会超出预期。

关于sql - 不需要在具有 UNIQUE 约束的列上创建索引,对吧?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36879755/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com