gpt4 book ai didi

sqlite - 对SQLite的许多小写

转载 作者:行者123 更新时间:2023-12-03 15:37:35 24 4
gpt4 key购买 nike

我有一个应用程序,该应用程序始终运行,并接收一些消息(它们的速率从每秒几条变化到每小时几条)。每条消息都应放入SQLite数据库中。最好的方法是什么?

在每条消息上打开和关闭数据库听起来并不好:如果每秒发送数十条消息,那将非常慢。

另一方面,如果进程意外终止,则一次打开数据库并仅对其进行写入操作可能会导致数据丢失。

最佳答案

听起来,无论您做什么,都必须权衡取舍。

如果安全是您最关心的问题,请在每条消息上更新数据库并加快速度。

如果您想让步,请更新数据库,每隔这么多消息写入一次。例如,维护一个缓冲区,然后每隔100条消息发出一个更新,包装在事务中。

事务包装很重要,原因有两个。首先,它使速度最大化。其次,如果您使用日志记录,它可以帮助您从错误中恢复。

如果您执行上述批处理更新,则可以通过记录文件中的每条消息来增加安全级别。每次成功发布数据库更新时,您都将重置此日志。这样,如果更新失败,您将知道整个块都失败了(因为您正在使用事务),并且日志中将包含未更新的信息。这将允许您重新发布更新,甚至查看导致失败的数据是否存在问题。当然,这是假设保留日志比更新数据库便宜,具体取决于您的连接方式。

关于sqlite - 对SQLite的许多小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13686814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com