在Python中创建SQLite3索引表

4
我已经在Python 2.7中创建了这个表。我用它来存储唯一的名称和值对。在某些查询中,我搜索名称,在其他查询中,我搜索值。假设选择查询是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)

还有其他更快的结构可以实现更快的值查找吗?
2个回答

9

您可以创建另一个索引...

sql = ("CREATE INDEX index_my_table2 ON my_table (value);")
cursor.execute(sql)

2
我认为加快研究速度的最佳方法是在两个字段上创建索引。 例如:sql = ("CREATE INDEX index_my_table ON my_table (Field1, field2)") 多列索引或覆盖索引。 请参阅(很棒的)文档:https://www.sqlite.org/queryplanner.html

这个回答与上面的问题无关,但它确实回答了我的问题。 - demented hedgehog

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接