我在python 2.7中创建了这个表。我用它来存储唯一的对名称和值。在某些查询中,我搜索名称,在其他查询中,我搜索值。让我们说SELECT查询是50-50。有没有办法创建一个双索引的表(名称上的一个索引和值的另一个索引),所以我的程序将寻求更快的数据?
以下是数据库和表格创建:
import sqlite3
#-------------------------db creation ---------------------------------------#
db1 = sqlite3.connect('/my_db.db')
cursor = db1.cursor()
cursor.execute("DROP TABLE IF EXISTS my_table")
sql = '''CREATE TABLE my_table (
name TEXT DEFAULT NULL,
value INT
);'''
cursor.execute(sql)
sql = ("CREATE INDEX index_my_table ON my_table (name);")
cursor.execute(sql)
或者还有其他更快的结构来更快地寻找价值吗?
答案 0 :(得分:5)
您可以创建另一个索引...
sql = ("CREATE INDEX index_my_table2 ON my_table (value);")
cursor.execute(sql)
答案 1 :(得分:0)
我认为,进行更快研究的最好方法是在这两个字段上创建索引。 像:sql =(“在my_table(Field1,field2)上创建索引index_my_table”)
多列索引或覆盖索引。 请在此处查看(出色的)文档:https://www.sqlite.org/queryplanner.html