django项目用的默认sqlite,几年下来数据有2亿多条
表格大概长这样:
id | key | value |
---|---|---|
1 | key | value |
2 | key | value |
key和value都有重复的值还不能删掉
现在这个数据表格每天还在增加
问题是现在查询一条数据就已经要40s左右(服务器性能也很不好)
有什么办法可以优化查询速度?
一般是根据key查alue,只考虑查询速度,优化,不用考虑其他。
目前查询简单粗暴:
Book.objects.filter(key=key)
django项目用的默认sqlite,几年下来数据有2亿多条
表格大概长这样:
id | key | value |
---|---|---|
1 | key | value |
2 | key | value |
key和value都有重复的值还不能删掉
现在这个数据表格每天还在增加
问题是现在查询一条数据就已经要40s左右(服务器性能也很不好)
有什么办法可以优化查询速度?
一般是根据key查alue,只考虑查询速度,优化,不用考虑其他。
目前查询简单粗暴:
Book.objects.filter(key=key)
1 回答1.4k 阅读✓ 已解决
2 回答1.5k 阅读
1 回答917 阅读✓ 已解决
1 回答562 阅读✓ 已解决
1 回答443 阅读✓ 已解决
1 回答534 阅读
382 阅读
新手答一下。
结合实际情况处理吧,不换数据库引擎的话。
1.分区和索引不能解决问题吗?
2.“key和value都有重复的值还不能删掉”
你这是需要id吗?不需要那就重新建张表去重,减少条数
如果是需要id还是要重新建张表,把不同id的合成一条记录,减少总条数
3.建缓存。如果不是每次都一定要查全表的记录,就记录下查询历史,优先从历史记录找结果