在Android上使用AUTOINCREMENT for SQLite的开销是多少?

在Android上使用AUTOINCREMENT for SQLite的开销是多少?,第1张

概述在SQLite文档中,它包括以下内容: – The AUTOINCREMENT keyword imposes extra CPU, memory, disk space, and disk I/O overhead and should be avoided if not strictly needed. It is usually not needed. 和 The behavior impl 在sqlite文档中,它包括以下内容: –

The autoINCREMENT keyword imposes extra cpu,memory,disk space,and
disk I/O overhead and should be avoIDed if not strictly needed. It is
usually not needed.

The behavior implemented by the autoINCREMENT keyword is subtly
different from the default behavior. With autoINCREMENT,rows with
automatically selected ROWIDs are guaranteed to have ROWIDs that have
never been used before by the same table in the same database. And the
automatically generated ROWIDs are guaranteed to be monotonically
increasing. These are important propertIEs in certain applications.
But if your application does not need these propertIEs,you should
probably stay with the default behavior since the use of autoINCREMENT
requires additional work to be done as each row is inserted and thus
causes INSERTs to run a little slower.

以上报价均为SQLite Autoincrement

那么预期会产生什么样的影响,以及autoINCREMENT的速度有多慢?

解决方法 我的估计,我注意到我不是一个统计学家,是因为开销慢了8-12%.

我使用3个结构相似且简单的表和两个TEXT列获得了结果,每个表运行10,000个插入,在4个设备上重复这5次.

表1(Dflt列)仅使用两个TEXT列创建(因此使用默认的ROWID).

表2(AI列)是使用_ID INTEGER PRIMARY KEY autoINCREMENT以及两个TEXT列创建的.

除了两个TEXT列之外,还使用_ID INTEGER PRIMARY KEY创建了表3(无AI列).

因此,表2使用稍微不同的ROWID选择算法进行插入.

使用的四种设备是: –

>(1)Genymotion仿真设备(Custom tablet – 5.1.0 – API 22 – 1536×2048
)
>(2)onix 10“平板电脑(AT101-1116
)
>(3)HTC 1 M8(HTC_0PKV1
)
>(4)Lenevo A10-30平板电脑(联想TB2-X30F
)

我得到的结果是: –

当所有内容仅在1个事务中运行时(即beginTransaction();在任何插入之前,使用setTransactionSuccessful();和endTransaction();在所有插入之后(对于所有表,即整个150,000个插入),结果更有利,例如: –

这两个表的比较强调了使用事务可以对性能产生的好处.

总结

以上是内存溢出为你收集整理的在Android上使用AUTOINCREMENT for SQLite的开销是多少?全部内容,希望文章能够帮你解决在Android上使用AUTOINCREMENT for SQLite的开销是多少?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1121455.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存