python中的sqlite3索引表

时间:2014-05-17 19:49:59

标签: python sqlite indexing

我在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)

或者还有其他更快的结构来更快地寻找价值吗?

2 个答案:

答案 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