SQLite select语句优化建议

SQLite select语句优化建议,第1张

SQLite select语句优化建议

我在这里与neurino在一起。您还没有说过为什么需要将随机选择的四个名称放在一行中,以及为什么必须在后端进行。

如果您担心性能,请在客户端中生成随机整数(范围> = min(pkcol)和<=
max(pkcol)),直到找到四个不同的行(即实体/名称)。生成的ID之一可能不存在任何行,但是只需几毫秒即可找到。采用这种随机密钥方法,您可以避免排序。即使对于具有数十亿行的表,该方法也将快速起作用。

PS(发现它是一个iPhone应用程序之后),您需要调用一次以获取最小和最大ID值(它是PK,因此使用了索引)。然后,您至少需要再次调用数据库(再次,使用索引辅助),以使用您随机生成的PK值来获得四个不同的行[其中(a,b,c,d)中的ID]最大调用数是未知的;
多少取决于主键序列的密度。我不认为这将是过多的I / O,并且与Random()的命令相比,它的资源占用将大大减少-
尤其是在表中有很多行的情况下。您总是可以随机生成一个ID列表,其中包含8、12、16个ID,并且如果返回的行数多于4,则让客户端只选择所需的4行。

PPS通常,数据库连接的实例化非常昂贵,并且您不希望循环执行此 *** 作,也不想执行比所需次数更多的 *** 作。但是您可以打开一个连接,运行两个或三个有效的选择,每个选择返回几行,然后在完成当前任务后关闭。



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

原文地址: http://outofmemory.cn/zaji/5431811.html

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

发表评论

登录后才能评论

评论列表(0条)

保存