SQLite 在大量数据的情况下如何优化查询?

17 小时 40 分钟前
 ysy950803

最近遇到移动端数据库的性能瓶颈问题了。

我们的应用主要依赖于谷歌官方的 Room 框架,用了 Kotlin 的 Flow 来实现响应式数据流,由于项目比较新,各种依赖库都是最新的。

有用户积累了 2 万多条数据,在中低端手机上,查一次要好几秒,由于建立了数据库索引,插入的速度也很慢,插一条数据也要等好多秒。应用有查全部数据的需求(包括一些全局统计信息等等),所以不想每次用户查全部数据都加 loading 之类的弹窗,体验会很不好。

是否有办法优化 SQLite 数据库的读写速度呢?感觉依赖于 Room 后,开发者能做的很少。

1521 次点击
所在节点    Android
10 条回复
jstony
17 小时 39 分钟前
sqlite 处理 2 万条数据应该是小 case 吧,会不会瓶颈不在数据库这里?
gbw1992
17 小时 36 分钟前
2w 条对 sqlite 小意思了,应该是业务或者操作的问题
我印象中批量写的时候,一定要用事务操作,同一个事务只有一次 io
NoOneNoBody
17 小时 11 分钟前
插入为什么要等?插入不影响后续工作啊
iyiluo
17 小时 8 分钟前
才 2w 条,怎么可能瓶颈了,微信用的也是 SQLite ,十几 G 的数据查起来挺快的
caola
15 小时 57 分钟前
不太可能是 sqlite 问题。多进程读取是没问题,但多进程写入之前有其他的操作没有释放就会导致问题
ursash
14 小时 2 分钟前
ducked?
ursash
14 小时 1 分钟前
打错了。。duckdb
icy37785
9 小时 40 分钟前
才两万条数据,离 sqlite 的瓶颈差的远。感觉你应该在其他地方找问题。
iX8NEGGn
7 小时 54 分钟前
sqlite 强得很,有索引两亿条都不至于几秒,找找别的原因
gogogo2000
2 小时 9 分钟前
sqlite 的性能在有索引的情况下,最少也要百万级别才能感受到性能衰减,你这个 2w 根本不值一提

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1087204

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX