创建数据库
正如 C# 快速入门中所展示的,数据库是通过 Database 类的 Open() 方法创建的。Open() 方法有三个版本:
Open( String dbName, Parameters params, long size)
Open( String dbName, Parameters params, Devices[] devices)
Open( String dbName, Parameters params)
第一个版本适用于内存数据库,因为它允许简单地将数据库大小指定为第三个参数。
如果需要共享内存设备或额外的内存设备(这通常仅对持久数据库是必要的),则需要第二个版本。
但对于内存数据库,如果可能需要扩展数据库内存,则可能需要一个或多个额外的内存设备。第三个版本实际上调用了第二个版本,其中 devices = null,这用于打开现有的共享内存数据库。
对于内存数据库,相关参数如下所述。对于持久数据库,还有其他需要考虑的因素。请使用以下链接查看创建或打开持久数据库的详细说明。
数据库参数
Database.Parameters 类用于指定将存储在数据库中的类以及其他决定运行时行为的属性。Database.Parameters 构造函数使用默认值初始化数据库参数。对于内存数据库,除了默认值之外,通常需要指定的参数只有 MemPageSize(内存页大小)、Classes(类)和 MaxConnections(最大连接数)。例如:
public static void main(String[] args)
{
...
Database.Parameters params = new Database.Parameters();
...
params.MemPageSize = 128; // Memory page size
params.Classes = new Class[] { OpenObj.class }; // List of classes that will be stored in eXremeDB database.
params.MaxConnections = 10;
内存数据库的 Database.Parameters 类的关键属性有:
MemPageSize
数据库对象和索引页的字节大小
MemPageSize 属性用于定义常规内存的页面大小。通过合理设置 MemPageSize,您可以优化应用程序的性能。根据不同的应用需求,页面大小可以在 80 到 512 字节之间调整;通常情况下,128 字节是一个不错的选择。
对于全内存数据库,您无需担心 DiskPageSize 的设置,因为 Database.Parameters 构造函数会自动将其设置为零。
如果您使用 rtree 索引,可能需要更大的页面大小。如果在数据库操作中遇到 MCO_ERR_RTREE 或 MCO_E_DISK_PAGE_POOL_EXHAUSTED 错误代码,建议逐步增加页面大小,直到这些错误得到解决。我们希望这些建议能帮助您更好地配置数据库,确保其稳定运行。
DiskPageSize
设为零以表示内存数据库(并禁用磁盘操作)
Classes
将存储在数据库中的 Java 类的列表(这些类必须使用 @Persistent 注解)
MaxConnections
指定了此数据库将管理的最大连接数。
示例
创建内存数据库的典型应用程序代码可能如下所示:
const int DATABASE_SIZE = 16*1024*1024;
public static void main(String[] args)
{
Database db = new Database();
Database.Parameters params = new Database.Parameters();
...
params.MemPageSize = 128; // Memory page size
params.Classes = new Type[] { typeof(Record) }; // List of classes that will be stored in eXremeDB database.
db.Open("operations-db", params, DATABASE_SIZE);