SQLite中内存数据库的优点

前端之家收集整理的这篇文章主要介绍了SQLite中内存数据库的优点前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我从今天关于sqlite的书中读到关键词“:memory:”,但它只说它是什么,如何使用,解释太短.所以我在这里搜索了更多信息,但无法获得sqlite特定信息.

>’内存:’模式有哪些优点? (我什么时候需要这个?)
>内存数据库性能更快?
>我还需要在内存数据库中使用事务吗?

SQLite in-memory database的主要优点是性能:它不是读写磁盘,而是将整个数据库保存在内存中.内存比磁盘快得多.使用旋转磁盘或负载较重的IO服务器,您会看到最大的性能提升,而SSD的性能则更低.

但是,这不是解决错误查询和表格的灵丹妙药.在到达内存数据库以提高性能之前,请确保优化表设计,查询和索引.

主要缺点是一旦进程关闭数据库就消失了.并且数据库不能大于可用内存.

提交可能更快,因为不需要写入磁盘,因此自动提交模式可能更快,但仍应将事务用于数据完整性目的.

请注意,不会太大的临时sqlite数据库可能会存储在内存中.

由于它的缺点,并且因为内存比存储少得多,所以在提交到内存数据库之前,请尝试使用临时数据库.这是通过使用”作为数据库文件名来完成的.这将写入临时文件,但缓冲内存缓存中的工作.它是两全其美的,你可以在不使用太多内存的情况下提高性能.

Even though a disk file is allocated for each temporary database,in practice the temporary database usually resides in the in-memory pager cache and hence is very little difference between a pure in-memory database created by “:memory:” and a temporary database created by an empty filename. The sole difference is that a “:memory:” database must remain in memory at all times whereas parts of a temporary database might be flushed to disk if database becomes large or if sqlite comes under memory pressure.

对应用程序进行概要分析和基准测试,以确保它会带来性能改进,考虑优化查询添加索引是否更好,并确保数据消失后即可.

猜你在找的Sqlite相关文章