SQlite单表查询优化问题

django项目用的默认sqlite,几年下来数据有2亿多条
表格大概长这样:

idkeyvalue
1keyvalue
2keyvalue

key和value都有重复的值还不能删掉
现在这个数据表格每天还在增加
问题是现在查询一条数据就已经要40s左右(服务器性能也很不好)
有什么办法可以优化查询速度?
一般是根据key查alue,只考虑查询速度,优化,不用考虑其他。
目前查询简单粗暴:

Book.objects.filter(key=key)
阅读 2.1k
1 个回答

新手答一下。
结合实际情况处理吧,不换数据库引擎的话。

1.分区和索引不能解决问题吗?

2.“key和value都有重复的值还不能删掉”
你这是需要id吗?不需要那就重新建张表去重,减少条数
如果是需要id还是要重新建张表,把不同id的合成一条记录,减少总条数

keyvalueids
keyvalue"1,2,3"
keyvalue"4"

3.建缓存。如果不是每次都一定要查全表的记录,就记录下查询历史,优先从历史记录找结果

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题