临时或持久对象
临时数据库对象
当应用程序与数据库保持连接时,临时数据库对象才会存在。一旦应用程序关闭了数据库连接,所有临时对象便会随之消失。对于内存数据库而言,它仅包含在应用程序运行期间驻留在内存中的临时对象;如果是共享内存数据库,则这些对象会一直存在直到共享内存段被移除。而持久性数据库对象则存储在持久性存储设备上,如硬盘驱动器(HDD)或固态硬盘(SSD)。
临时对象的数量受限于可用的内存空间。需要注意的是,数据库不仅使用分配的内存来存放临时对象,还会用这部分内存来构建索引和保存内部元数据结构。相比之下,持久性对象的数量取决于持久性存储设备的容量,因此持久性数据库可以容纳海量的数据,甚至达到数TB级别。此外,数据库的存储能力(包括内存和持久化存储)可以在运行过程中动态扩展,以适应更多数据的需求。
持久数据库对象
持久数据库既可以只包含持久对象,也可以是混合型数据库,即同时拥有临时对象和持久对象。临时对象配有临时索引,而持久对象则有持久索引。这意味着重新打开持久数据库时无需重新创建索引。由于持久对象和持久索引的实现方式不同,它们具有不同的内存布局,因此即使是在相同的模式下,持久对象和临时对象所需的内存也会有所不同。
为了提高性能,持久或混合数据库需要一个名为缓存的特殊组件。这个缓存区域作为持久存储介质与应用程序之间的桥梁,用于加载持久对象的数据和索引。通常建议尽可能增大缓存大小,以便为应用程序提供更高效的数据处理能力。有关详细信息,请参阅持久化数据库I/O页面。
应用程序可以通过定义存储设备来确定数据库数据、元数据以及持久对象(包括缓存和事务日志)的存储类型和大小。