【发布时间】:2016-02-25 11:19:54
【问题描述】:
我对 UNIQUE 表中的 SQLite 自动索引有问题。我已经创建了如下表。
c.execute('''CREATE TABLE user(
id INTEGER PRIMARY KEY,
email TEXT NOT NULL UNIQUE,
password TEXT NOT NULL,
name TEXT NOT NULL,
);'''
)
c.execute('CREATE INDEX USR on user(email, password);')
但是当我使用解释查询计划检查时,SQLite 使用自己提供的自动索引。如何避免这种情况使用我自己的索引而不是它的自动索引? 我如何尝试:
c.execute('EXPLAIN QUERY PLAN SELECT id, name FROM social WHERE email = "a@a.com" AND password = 'password'')
结果是:
(0, 0, 0, 'SEARCH TABLE social USING INDEX sqlite_autoindex_user_1(email=?))
【问题讨论】:
-
“社交”中有多少行?
-
嗨@MikeSherrill'CatRecall'。我已经编辑了我的问题。一旦你以前看过这个编辑版本,我就有两个表的问题。我觉得这个更适合我的问题。
-
好的。 “用户”有多少行?
-
一百万左右,但我没有遇到性能问题,但我只想知道为什么sqlite会这样做?我认为使用我自己的索引比使用它的索引更好。
标签: sql indexing sqlite pysqlite