当前位置:  开发笔记 > 数据库 > 正文

SQLite中的外键优化

如何解决《SQLite中的外键优化》经验,为你挑选了2个好方法。

我知道SQLite本身并不强制执行外键,但这不是我主要关注的问题.问题是:如果我宣布

CREATE TABLE invoice (
  invoiceID INTEGER PRIMARY KEY,
  clientID INTEGER REFERENCES client(clientID),
  ...
  )

sqlite至少会使用clientID是外键的信息来优化查询并自动索引invoice.clientID,还是这个约束是真正的无操作?



1> Masci..:

即使它实际上不是no-op(描述约束的数据结构被添加到表中),外键相关语句也不会在涉及的列上创建任何索引.仅在PRIMARY KEY和UNIQUE语句的情况下隐式创建索引.有关更多详细信息,请在sqlite源代码树上查看build.c模块:http://www.sqlite.org/cvstrac/rlog?f = sysite/src/build.c



2> 小智..:

在SQLite文档中,它说:

..."应在每个外键约束的子键列上创建索引"

即.索引不会自动创建,但您应该在每个实例中创建一个.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有