【发布时间】:2015-10-10 06:42:45
【问题描述】:
我在一个 Android 应用中有一个 SQLite 数据库,用于存储基本交易信息(日期、金额、类别、cmets)。我知道我可以很容易地进行查询以获取两个日期之间特定类别的所有交易,但我想为两个日期之间特定类别的每笔交易加起来成本(在 SQLite 中存储为实数)。我知道 SQLite 中有一个 sum 函数(感谢this 问题),但this other 问题中的最后一个答案让我质疑这样做的性能成本。
据我了解,SQLite 是用本机代码编写的,这对移动设备来说是一个胜利,其中性能是关键。所以我被告知在 java 中做的更少,让 SQLite 在本机代码中做它最擅长的事情(我所说的本机代码是指 C / C++)。
因此,在 Android 的情况下,将光标移至所有成本并循环以获取总成本(在 java 代码中)更好,还是将这一提升留给 SQLite 更好?我只是不确定 SQLite 在 Android 上做了哪些优化。
谢谢!
【问题讨论】:
-
同时尝试并计时。在 SQLite 中它当然不是更快。原生代码总是更快是一个常见的误解。还要考虑决策的可维护性和复杂性。
-
一般来说,您希望在数据库中进行操作——数据库应该针对它们实现的操作进行优化,并减少来回传递的数据。不过,与任何一般规则一样,您应该验证系统上的数据。
标签: java android sqlite native