数据库参数
xSQL 配置文件可用于定义与 C API 的 mco_db_params_t 结构相对应的数据库参数。
“db_params”部分由一组用大括号括起来的“name : value”对组成。例如:
db_params : {
mem_page_size : 256,
disk_page_size : 4096,
db_max_connections : 100,
...
}
以下表格列出了 db_params 部分的可能选项,以及注释中指定的相应 C API 结构和值:
结构参数
mem_page_size
unsigned
内存中的页大小(mco_db_params_t::mem_page_size),如:mem_page_size : 256
disk_page_size
unsigned
磁盘页大小(mco_db_params_t::disk_page_size),如:disk_page_size : 4096
db_max_connections
unsigned
数据库的最大连接数(mco_db_params_t::db_max_connections),如:db_max_connections : 100
disk_max_database_size
unsigned
持久数据库的最大大小(mco_db_params_t::disk_max_database_size),如:disk_max_database_size : 0
file_extension_quantum
unsigned
数据库文件大小增加的量(mco_db_params_t::file_extension_quantum),如:file_extension_quantum : 0
db_log_type
数据库日志方法(mco_db_params_t::db_log_type),可选值为 no(无日志)、redo(重做日志)或 undo(撤销日志)
aio_queue_length
unsigned
异步 I/O 队列长度(默认值为 10007),如:aio_queue_length : 20000
additional_heap_size
额外的堆内存(在修改或删除表时可能需要),如:additional_heap_size : 3m
hash_load_factor
unsigned
哈希重新分配的使用项百分比标准(mco_db_params_t::hash_load_factor),如:hash_load_factor : 100
index_optimistic_lock_threshold
unsigned
在执行 B 树索引的乐观锁定时可同时进行的最大写入事务数,如:index_optimistic_lock_threshold : 100,
log_params
日志设置(mco_db_params_t::log_params),如:log_params:
mode_mask
打开模式掩码(mco_db_params_t::mode_mask),mode_mask : [] 组合形式:
- mvcc_auto_vacuum (MCO_DB_MODE_MVCC_AUTO_VACUUM)
- smart_index_insert (MCO_DB_MODE_SMART_INDEX_INSERT)
- open_existing (MCO_DB_OPEN_EXISTING)
- use_crc_check (MCO_DB_USE_CRC_CHECK)
- transient (MCO_DB_TRANSIENT)
- lazy_mem_initialization (MCO_DB_LAZY_MEM_INITIALIZATION)
- mursiw_disk_commit_optimization (MCO_DB_MURSIW_DISK_COMMIT_OPTIMIZATION)
- bulk_write_modified_pages (MCO_DB_BULK_WRITE_MODIFIED_PAGES)
- index_preload (MCO_DB_INDEX_PRELOAD)
- disable_nested_transactions (MCO_DB_DISABLE_NESTED_TRANSACTIONS)
- disable_implicit_rollback (MCO_DB_DISABLE_IMPLICIT_ROLLBACK)
- inmemory_protection (MCO_DB_INMEMORY_PROTECTION)
- inmemory_compression (MCO_DB_INMEMORY_COMPRESSION)
- inclusive_btree (MCO_DB_INCLUSIVE_BTREE)
- separate_bitmap (MCO_DB_SEPARATE_BITMAP)
- disable_btree_rebalance_on_delete (MCO_DB_DISABLE_BTREE_REBALANCE_ON_DELETE)
- auto_rollback_first_phase (MCO_DB_AUTO_ROLLBACK_FIRST_PHASE)
- mvcc_compatibility_mode (MCO_DB_MVCC_COMPATIBILITY_MODE)
- disable_page_pool_reserve (MCO_DB_DISABLE_PAGE_POOL_RESERVE)
- redo_log_optimization (MCO_DB_REDO_LOG_OPTIMIZATION)
- disable_hot_updates (MCO_DB_DISABLE_HOT_UPDATES)
- sql_autocheckpoint (MCO_DB_SQL_AUTOCHECKPOINT)
- read_only (MCO_DB_MODE_READ_ONLY)
- use_aio (MCO_DB_USE_AIO)
- incremental_backup (MCO_DB_INCREMENTAL_BACKUP)
- mvcc_table_level_locking (MCO_DB_MVCC_TABLE_LEVEL_LOCKING)
min_conn_local_pages
unsigned
每个连接分配器中的最小页数(mco_db_params_t::min_conn_local_pages),如:min_conn_local_pages : 256
max_conn_local_pages
unsigned
每个连接分配器中的最大页数(mco_db_params_t::max_conn_local_pages),无符号数max_conn_local_pages : 1024
allocation_bitmap_caching_priority
int
LRU 页池中分配器位图页的优先级(mco_db_params_t::allocation_bitmap_caching_priority),如:allocation_bitmap_caching_priority : 0
index_caching_priority
int
LRU页池中索引页的优先级(mco_db_params_t::index_caching_priority),如:index_caching_priority : 0
object_caching_priority
int
LRU 页面池中对象(非二进制大对象)页面的优先级(mco_db_params_t::object_caching_priority),如:object_caching_priority : 0
cipher_key
string
数据库加密密钥(mco_db_params_t::cipher_key),如:cipher_key : "secret",详情请参阅“加密与压缩”页面。
dynamic_hash
bool
当项目数量超过负载因子时动态扩展哈希表(mco_db_params_t::dynamic_hash),如:dynamic_hash : true,
license_key
string
许可证密钥(mco_db_params_t::license_key),如:license_key : "ABCABCABCABC",
ddl_dict_size
用于在数据库头中为字典预留空间以支持动态表创建(mco_db_params_t::ddl_dict_size),如:ddl_dict_size :64K
max_classes : 100
unsigned
用于在数据库头中为类预留空间以允许动态表创建(mco_db_params_t::max_classes),如:max_classes : 100
max_indexes
unsigned
用于在数据库头中为索引预留空间,以支持动态表创建(mco_db_params_t::max_indexes),如:max_indexes : 100,
autocompact_threshold
unsigned
在事务提交期间调用 mco_w_compact() 时对象达到的大小(mco_db_params_t::autocompact_threshold),如:autocompact_threshold : 100k,
trans_sched_policy
具有相同优先级的事务的调度策略(mco_db_params_t::trans_sched_policy)。可选值为先进先出(MCO_SCHED_FIFO)、优先读取(MCO_SCHED_READER_FAVOR)或优先写入(MCO_SCHED_WRITER_FAVOR)之一。
max_active_pages
unsigned
连接访问的最大页面数(mco_db_params_t::max_active_pages),如:max_active_pages: 32,
page_hash_bundles
unsigned
加密/保护/压缩页面哈希中的包数(mco_db_params_t::page_hash_bundles),如:page_hash_bundles: 8
compression_level
int
压缩级别(mco_db_params_t::compression_level),0 至 9,0 表示不压缩,如:compression_level: 0
compression_mask
unsigned
应压缩的页面种类的位图(mco_db_params_t::compression_mask),如:compression_mask: 0x1
expected_compression_ratio
unsigned
用于分配页面映射:虚拟数据库空间不能大于物理大小 * 压缩比,(mco_db_params_t::expected_compression_ratio),如:
expected_compression_ratio: 10
btree_cursor_read_ahead_size
unsigned
每次从 B 树的叶节点页面获取的键的数量不能大于 MCO_CFG_CURSOR_BUF_SIZE(mco_db_params_t::btree_cursor_read_ahead_size),如:btree_cursor_read_ahead_size : 3
mvcc_bitmap_size
多版本并发控制位图大小(应为 2 的幂次方)
additional_heap_size
各种内部数据库功能使用的堆内存,主要用于缓冲期间的堆内存使用。
cow_pagemap_size
写时复制多版本并发控制页映射的大小(以字节为单位,每磁盘页一个字节)
backup_map_size
备份计数器数组的大小,以字节为单位,为 2 的幂次方,如果将 disk_max_database_size 设置为零以禁用备份功能,则忽略此设置。
backup_min_pages
上次备份过程的独占模式最后一页数(设为零则禁用阈值)
backup_max_passes
备份程序在执行独占通过操作前的最大通过次数
backup_map_filename
mco_db_close() 调用将使用链接到进程中的文件系统包装器来存储可选的数据(将默认的“<persistent-storage>”设置为零)。Bmap(位于与持久存储文件相同位置的文件)
iot_agent_id
物联网代理标识符
file_backup_delay
在写入备份块之间延迟的毫秒数;以尽量减少备份对性能的影响;默认值为 0 - 无延迟。(请参阅文件备份)
日志参数
下表列出了log_params部分的可能选项,以及相应的C API结构和注释中指定的值:
default_commit_policy
事务提交策略(mco_log_params_t::default_commit_policy),可选值为:同步刷新(MCO_COMMIT_SYNC_FLUSH)、缓冲(MCO_COMMIT_BUFFERED)、延迟(MCO_COMMIT_DELAYED)或无同步(MCO_COMMIT_NO_SYNC),如:default_commit_policy : buffered
redo_log_limit
unsigned
重做日志文件大小限制(mco_log_params_t::redo_log_limit),如:redo_log_limit : 16m
delayed_commit_threshold
unsigned
延迟提交阈值(mco_log_params_t::delayed_commit_threshold),如:delayed_commit_threshold : 0
max_delayed_transactions
unsigned
延迟提交事务(mco_log_params_t::max_delayed_transactions),如:max_delayed_transactions : 100
max_commit_delay
unsigned
提交延迟(mco_log_params_t::max_commit_delay),如:max_commit_delay : 1000