gpt4 book ai didi

sql - 来自复合键的索引是否足够?

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

这是我的表格的样子:

CREATE TABLE pics(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
page INTEGER,
w INTEGER,
h INTEGER,
FOREIGN KEY(page) REFERENCES pages(id) ON DELETE CASCADE,
UNIQUE(name, page)
);

CREATE INDEX "myidx" ON "pics"("page"); # is this needed?

所以 UNIQUE(name, page) 应该创建一个索引。但是这个索引足以进行仅涉及 page 字段的快速查询吗?就像选择一组“图片”WHERE page = ?。或 JOIN pages.id ON pics.page ?或者我应该为页面字段创建另一个索引 (myidx)?

最佳答案

如前所述,您将需要其他 myidx 索引,因为您的 UNIQUE 索引首先指定了 name。换句话说,它可以用于查询:

  1. 姓名
  2. 名称页面
  3. 不是 page 单独。

您的另一个选择是重新排序 UNIQUE 索引并将 page 列放在第一位。然后它可以用于仅page 查询,但将与仅name 查询不兼容。

关于sql - 来自复合键的索引是否足够?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18084430/

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