我有一个应用程序,其中我使用的是PRAGMA user_version 5
的sqlite数据库。
在这里我有三个表,其中我将添加一些数据并按间隔天数删除一些数据。从sqlite db添加数据和删除数据发生在启动屏幕之后。
现在问题是当我在三种不同版本的Android设备中测试相同版本时如下。
1. Motorola(2.1) - more than a year old
2. SamsungAce(2.3) - buyed 8 mnths before
3. Xperia(2.3) - new device.
在这三个设备中,当应用程序加载时,仅在2.1中,从sqlite db添加或删除数据需要很长时间(超过一小时)。在其他两个设备中,加载只需2到5分钟。
为什么应用程序在2.1版本中变慢。这是因为版本还是设备变得很旧
请向我澄清这个疑问......
答案 0 :(得分:2)
我可以建议的一件事是使用交易。通过它的外观,您正在对数据库执行多个查询,如果这些查询在事务中,SQLite将执行得更好。
除非您添加或删除大量数据,否则考虑到Siva K的评论,即使2-5分钟似乎也很长。
如果交易无法发布您的代码,即使2-5分钟似乎也很长。如果用户必须在每个数据上等待2-5分钟,请添加/删除/更新应用程序。不会提供良好的体验。
答案 1 :(得分:1)
在2.1和2.2 / 2.3之间应该和将会有不同的速度结果,因为它们使用不同版本的sqlite3 - 2.1使用slite 3.5.9和2.2& 2.3使用3.6.22 .. 它确实改变了速度(更高的版本并不总是更快......它取决于查询并打开争议)虽然我找不到两个版本之间的速度测试比较。
但是...
2000插入什么都没有..如果明确插入已知数据从另一个(打开/流媒体)源读取它不应该花费超过几秒钟.. 您可以尝试删除代码以便进行测试,并尝试仅使用FOR LOOP 2000插入并测试时序。
如果您可以向我们展示您的代码,那么您可能会收到一些其他重要内容,而不喜欢您从中获取数据的来源。