SQLite 如何变成 内存数据库

SQLite 如何变成 内存数据库,第1张

SQLite数据库通常存储在单个普通磁盘文件中。但是,在某些情况下,数据库可能存储在内存中。

强制SQLite数据库单纯的存在于内存中的最常用方法是使用特殊文件名 :memory: ” 打开数据库。换句话说,不是将真实磁盘文件的名称传递给sqlite3_open(),sqlite3_open16()或 sqlite3_open_v2()函数之一,而是传入字符串“:memory:”。例如:

调用此接口完成后,不会打开任何磁盘文件。而是在内存中创建一个新的数据库。数据库连接关闭后,数据库就不再存在。每一个memory数据库彼此不同。因此,打开两个数据库连接,每个数据库连接的文件名为“:memory:”,将创建两个独立的内存数据库。

特殊文件名“:memory:”可用于允许数据库文件名的任何位置。例如,它可以被用作 文件名 中的ATTACH命令:

请注意,为了应用特殊的“:memory:”名称并创建纯内存数据库,文件名中不能有其他文本。因此,可以通过添加路径名在文件中创建基于磁盘的数据库,如下所示: "/:memory:"。

使用URI文件名时,特殊的“:memory:”文件名也可以使用。例如:

要么,

如果使用URI文件名打开内存数据库,则允许它们使用共享缓存。如果使用未加修饰的“:memory:”名称来指定内存数据库,那么该数据库始终具有专用高速缓存,并且仅对最初打开它的数据库连接可见。但是,可以通过两个或多个数据库连接打开相同的内存数据库,如下所示:

要么,

这允许单独的数据库连接共享相同的内存数据库。当然,共享内存数据库的所有数据库连接都需要在同一个进程中。当数据库的最后一个连接关闭时,将自动删除数据库并回收内存。

如果在单个进程中需要两个或多个不同同时可共享的内存数据库,则mode = memory查询参数可与URI文件名一起使用以创建命名的内存数据库:

要么,

当以这种方式命名内存数据库时,它将仅与使用完全相同名称的另一个连接共享其缓存。

当传递给sqlite3_open()或 ATTACH的数据库文件的名称是空字符串时,则会创建一个新的临时文件来保存数据库。

每次都会创建一个不同的临时文件,因此就像使用特殊的“:memory:”字符串一样,两个到临时数据库的数据库连接都有自己的私有数据库。创建它们的连接关闭时,将自动删除临时数据库。

即使为每个临时数据库分配了磁盘文件,实际上临时数据库通常驻留在内存中的pager缓存中,因此“:memory:”创建的纯内存数据库与临时数据库之间的差别很小。由空文件名创建。唯一的区别是“:memory:”数据库必须始终保留在内存中,而如果数据库变大或SQLite受到内存压力,临时数据库的某些部分可能会刷新到磁盘。

前面的段落描述了默认SQLite配置下临时数据库的行为。如果需要,应用程序可以使用 temp_store编译指示和SQLITE_TEMP_STORE编译时参数来强制临时数据库表现为纯内存数据库。

冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库,冷备份时将关键性文件拷贝到另外的位置的一种说法。

值得注意的使冷备份必须在数据库关闭的情况下进行,当数据库处于打开状态时,执行数据库文件系统备份是无效的。

1、MySQL

MySQL是一款关系型数据库管理系统,由MySQL AB公司开发,目前属于Oracle旗下产品,MySQL是最流行的关系型数据库管理系统之一,相信不少人对它都有一定的了解。MySQL也是一款开源的SQL数据库管理系统,因此众多小型网站会把它作为网站数据库的首选。MySQL的优势是可供用户免费使用,支持多线程可以充分利用CPU资源。PHP是比较流行的Web开发语言,MySQL对PHP有很好的支持。另外,MySQL提供TCP/IP、ODBC和JDBC等多种数据库连接途径。

2、Oracle

Oracle数据库是甲骨文公司推出的一款关系数据库管理系统,是当前数据库领域最有名、应用最广泛的数据库管理系统之一,Oracle产品覆盖了大、中、小型机等几十种机型。Oracle数据库具有以下优势:可运行于大部分硬件平台与 *** 作系统上;能与多种通讯网络相连,支持多种网络协议;Oracle具有良好的兼容性、可移植性、可连接性和高生产率;安全性非常高!

3、SQL Server

SQL Server是美国微软公司推出的一款关系型数据库管理系统,是一款可扩展的、高性能的、为分布式客户机/服务器计算所设计的数据库管理系统,实现了与WindowsNT的有机结合,提供了基于事务的企业级信息管理系统方案。SQL Server数据库的优点如下:采用图形界面, *** 作简单,管理方便;可以用ADO,DAO,OLEDB,ODBC连接;具有强壮的事务处理功能,采用各种方法保证数据的完整性;SQL Server是几大需要收费的主流数据库中收费最低的,维护费用也较低。

4、Sybase

Sybase数据库是由美国Sybase公司推出的一种关系数据库系统,是一种典型的UNIX或WindowsNT平台上客户机/服务器环境下的大型数据库系统,由于基于客户机/服务器体系结构,Sybase支持共享资源且在多台设备间平衡负载。Sybase数据库是基于客户/服务器体系结构的数据库,支持共享资源且在多台设备间平衡负载。它最大的优点是有非常好的开放性,能在几乎所有主流平台上运行。总的来讲,Sybase是一款高性能、安全性非常高的数据库。

5、DB2

DB2是美国IBM公司开发的一款关系型数据库管理系统,主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器 *** 作系统平台下。DB2采用了数据分级技术,能够使大型机数据很方便地下载到LAN数据库服务器,使得客户机/服务器用户和基于LAN的应用程序可以访问大型机数据,并使数据库本地化及远程连接透明化。DB2的优点有很多,比如:广泛应用于大型软件系统,向下兼容性较好;拥有一个非常完备的查询优化器,为外部连接改善了查询性能;具有很好的网络支持能力,可同时激活上千个活动线程等等。

以上就是关于SQLite 如何变成 内存数据库全部的内容,包括:SQLite 如何变成 内存数据库、数据库热备和冷备的区别是什么、目前什么数据库最好用啊!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/9473498.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存