【发布时间】:2025-11-27 23:00:01
【问题描述】:
我目前面临的问题是必须经常在小型 (700 Mhz) 设备上实时访问大型但简单的数据集。该数据集包含大约 400,000 个从缩写词到缩写词的映射,例如“frgm”到“片段”。设备使用时会频繁读取,不宜超过15-20ms。
我的第一次尝试是利用 SQLite 创建一个简单的数据库,该数据库仅包含一个表,其中两个字符串构成一个数据集:
CREATE TABLE WordMappings (key text, word text)
此表只创建一次,尽管可以更改,但只有读取访问是时间关键的。
在this guide 之后,我的 SELECT 语句如下所示:
def databaseQuery(self, query_string):
self.cursor.execute("SELECT word FROM WordMappings WHERE key=" + query_string + " LIMIT 1;")
result = self.cursor.fetchone()
return result[0]
但是,在包含 20,000 个缩写的测试数据库上使用此代码时,我无法以超过 60 毫秒的速度获取数据,这太慢了。
关于如何使用 SQLite 提高性能或其他方法会产生更有希望的结果的任何建议?
【问题讨论】:
-
您是否有足够的内存来保存所有数据?如果是这样,请将其加载到字典中...
标签: python database sqlite real-time