【发布时间】:2013-04-23 18:02:21
【问题描述】:
当我无意中找到一种方法来快速测试我的第一个 SQLite 用户定义函数而无需创建 SQLite 数据库时,我发现了这个简短的 SQLite 连接字符串,它帮助我快速测试了函数(对此很满意) :
SQLiteConnection con = new SQLiteConnection("Data Source = :memory:");
至少这是出于测试目的(我猜是这样)。我想知道我们还能用它做什么?我可以即时创建一些数据库并在某处保存为文件吗?
这称为内存数据库,通常用于易失性存储设备,在设备关闭后无需保存数据,适用于通过网络进行实时处理。这就是我对它的一些用法的全部了解,但我真的没有经历过任何与之相关的项目。
如果您有什么要分享的(以您的经验),请在这里分享,我将不胜感激。谢谢!
【问题讨论】:
-
这让我想起了在 MSSQL 中使用临时表的一点点。如果您有足够的内存/磁盘空间来支持它,我认为搜索内存表的速度会非常有利。
-
我不知道临时表是如何工作的,但我猜它们是在磁盘上的某个位置而不是内存 (RAM) 表上创建的。这种内存中的东西当然优于基于磁盘的东西。
-
我认为this 是关于这个主题的很好读物。仅供参考,temp table 可以在内存或本地磁盘中创建。 +1,顺便说一句。
-
@Brian,对于 MsSql 比较,这些应该类似于
DECLARE @myTable TABLE (...);的表变量,因为它们永远不会像CREATE TABLE #myTable(...)最终会持久保存在磁盘和临时表中。