MyRocks_zh_doc

新MySQL RocksDB服务变量参数

MyRocks服务变量

可用于调整RocksDB的大量参数已通过MyRocks存储引擎作为服务器变量导出。 此外,可以启用某些参数来帮助加快加载和创建新的MyRocks表以进行测试。

以下是MyRocks当前支持的参数列表:

* rocksdb: 启用或禁用MyRocks插件。
* rocksdb-access-hint-on-compaction-start: 一旦压缩开始,指定文件访问模式,应用于压缩的所有输入文件
* rocksdb-advise-random-on-open: 在打开数据文件时设置对文件系统的随机访问提示。
* rocksdb-allow-concurrent-memtable-write: 如果启用,则允许多写入并行更新memtables, 详情/限制在这里(https://github.com/facebook/rocksdb/blob/master/include/rocksdb/options.h#L749-L757)
* rocksdb-allow-mmap-reads: 允许操作系统对数据文件进行mmap以进行读取
* rocksdb-allow-mmap-writes: 允许操作系统对数据文件进行mmap以进行写入
* rocksdb-base-background-compactions: 建议并发后台压缩作业数,提交到RocksDB中的默认低优先级线程池。
* rocksdb-blind-delete-primary-key: 通过主键查找删除行,而不读取行,这仅适用于没有辅助建的表,因为它在不调用GetForUpdate()的情况下执行删除。
* rocksdb-background-sync: 使MyRocks每秒为WAL文件发出fsyncs,如果WAL文件在每次提交时都是同步的,则启用此选项是多余的。
* rocksdb-block-cache-size: RocksDB中LRU块缓存大小。此内存保留用于块缓存,这是可能发生的任何文件系统缓存的补充。
* rocksdb-block-restart-interval: 每组增量编码数据的密钥数。
* rocksdb-block-size: 用于读取SST文件的数据块大小。
* rocksdb-block-size-deviation: 如果当前可用空间的百分比(rocksdb-block-size中指定的大小)小于此数量,则关闭该块(并将记录写入新块)
* rocksdb-bulk-load: 设置后,MyRocks将忽略检查键的唯一性或在事务期间获取锁定。仅当引用程序确定没有行冲突时才应使用此选项,例如从现有MySQL转储设置新的MyRocks实例时。
* rocksdb-bulk-load-size: 设置在批量加载期间将密钥提交到存储引擎之前要累积的密钥数。
* rocksdb-bytes-per-sync: 允许操作系统在创建数据文件时同步文件写入。
* rocksdb-cache-index-and-filter-blocks: 请求RocksDB使用块缓存来缓存每个数据文件中的索引和bloomfilter数据块。如果未设置,RocksDB将分配额外的内存来维护这些数据块。
* rocksdb-cf-options: 启用列族的设置选项。
* rocksdb-cfstats: 启用信息模式ROCKSDB_CFSTATS以显示列族统计信息。
* rocksdb-checksums-pct: 设置要计算和设置MyRocks校验和的行的百分比。
* rocksdb-collect-sst-properties: 允许收集每个数据文件的统计信息,以改善优化程序行为。
* rocksdb-commit-in-the-middle: 在批量加载/插入/更新/删除期间,每个rocksdb-bulk-load-size隐式提交行。
* rocksdb-compact-cf: 触发特定列族的RocksDB中的手动压缩。
* rocksdb-compaction-readahead-size: 当非零时,在压缩过程中执行更大的读取。如果在旋转磁盘上运行RocksDB,则压缩将执行顺序而不是随机读取。
* rocksdb-compaction-sequential-deletes: 当数据文件中的删除标记数超过某个阈值时,允许触发压缩。根据工作负载模式,RocksDB可能会保留大量删除标记并增加所有查询的延迟。
* rocksdb-compaction-sequential-deletes-count-sd: 如果启用,则将单个删除因子作为rocksdb-compaction-sequential-deletes的一部分。
* rocksdb-compaction-sequential-deletes-file-size: 如果所有删除标记的连续键数超过此值,则触发压缩的阈值。虽然此压缩通过删除删除标记有助于减少请求延迟,但它可以提高RocksDB的写入速率。
* rocksdb-compaction-sequential-deletes-window: 如果在滑动窗口中存在此参数的删除标记数,则触发压缩的阈值。
* rocksdb-create-checkpoint: 在指定目录中创建RocksDB检查点。
* rocksdb-create-if-missing: 允许创建RocksDB数据库(如果不存在)。
* rocksdb-create-missing-column-families: 允许创建新的列族(如果它们不存在)。
* rocksdb-datadir: 用于存储数据文件的目录。
* rocksdb-db-write-buffer-size: 用于在RocksDB中存储写入的memtable的大小。这是每列系列的大小。一旦达到此大小,就会发生对可持续媒体的记忆的刷新。
* rocksdb-deadlock-detect: 在RocksDB中启用死锁检测。
* rocksdb-debug-optimizer-no-zero-cardinality: 仅测试以防止MyRocks计算基数。
* rocksdb-default-cf-options: 描述RocksDB的默认列族选项集。
* rocksdb-delayed-write-rate: 当RocksDB达到写入的软限制/阈值时,例如命中soft_pending_compaction_bytes_limit,或者命中level0_slowdown_writes_trigger,RocksDB会将写入速率降低到此参数的值,以字节/秒为单位。如果设置为16 * 1024 * 1024,则将其视为16MB /秒。
* rocksdb-delete-obsolete-files-period-micros: 删除过时文件的周期,但不影响通过压缩删除的文件。
* rocksdb-enable-2pc: 为MyRocks事务启用两阶段提交。否则,跳过准备阶段
* rocksdb-enable-bulk-load-api: 启用RocksDB中的SSTFileWriter功能,该功能绕过memtable,但这需要按升序或降序将键插入表中。如果禁用,则批量加载通过memtable使用正常的写入路径,并且不会以任何顺序插入密钥。
* rocksdb-enable-thread-tracking: 设置为允许RocksDB跟踪访问数据库的线程的状态。
* rocksdb-enable-write-thread-adaptive-yield: 设置为允许RocksDB写入批处理组组长在阻塞互斥锁之前等待允许的最大时间,从而允许增加并发工作负载的吞吐量。
* rocksdb-error-if-exists: 如果设置,则在现有数据库已存在时报告错误。
* rocksdb-flush-log-at-trx-commit:在事务提交时进行同步,类似于innodb-flush-log-at-trx-commit。
  0:永不同步
  1:始终同步
  2:基于通过rocksdb-background-sync控制的计时器进行同步
* rocksdb-flush-memtable-on-analyze: 当运行analyze表时,应该刷新memtable的确定,以便memtable中的数据也用于计算stats。
* rocksdb-force-compute-memtable-stats: 启用时,还包括用于查询优化器使用的索引统计计算的memtables中的数据。更高的准确性,但需要更多的CPU。
* rocksdb-force-flush-memtable-now: 触发MyRocks将memtables刷新到数据文件中。
* rocksdb-force-index-records-in-range: 当使用force index时,此处的非零值将用作尝试确定估计行数时要返回给查询优化器的行数。
* rocksdb-global-info: 启用信息模式ROCKSDB_GLOBAL_INFO插件,用于报告数据字典信息。
* rocksdb-hash-index-allow-collision: 允许RocksDB允许哈希冲突(使用更少的内存)。否则,存储完整前缀以防止散列冲突。
* rocksdb-index-file-map: 启用信息模式ROCKSDB_INDEX_FILE_MAP插件,以显示RocksDB中的sst数据文件列表。
* rocksdb-index-type: 设置RocksDB中使用的索引类型(二进制搜索,哈希搜索)。
* rocksdb-info-log-level: 设置日志消息打印的日志级别。
* rocksdb-is-fd-close-on-exec: 禁止子进程继承打开的文件句柄。
* rocksdb-keep-log-file-num: 设置要保留的最大信息LOG文件数。
* rocksdb-lock-scanned-rows: 如果启用,UPDATE期间扫描的行即使尚未更新也会保持锁定状态。
* rocksdb-lock-wait-timeout: 设置MyRocks在中止请求之前等待获取行锁的秒数。
* rocksdb-log-file-time-to-roll: 设置信息LOG文件在滚动到新LOG文件之前捕获的秒数。
* rocksdb-manifest-preallocation-size: 设置为RocksDB中的MANIFEST文件预分配的字节数,并减少XFS上可能的随机I/O. MANIFEST文件用于存储有关列族,级别,活动文件等的信息。
* rocksdb-master-skip-tx-api: 在master服务器上运行时跳过获取事务中的行锁。这可以显着提高性能,但前提是应用程序可以保证行不会被并发事务修改。否则,数据库可能会损坏并且不一致。
* rocksdb-max-background-compactions: 设置并发后台压缩线程的数量。
* rocksdb-max-background-flushes: 设置并发后台可记忆刷新线程的数量。
* rocksdb-max-log-file-size: 设置info LOG文件的最大大小。
* rocksdb-max-manifest-file-size: 在滚动之前设置MANIFEST数据文件的最大大小。
* rocksdb-max-open-files: 设置RocksDB打开的最大文件句柄数限制。
* rocksdb-max-row-locks: 在事务失败之前设置事务持有的最大行锁数限制。
* rocksdb-max-subcompactions: 对于每个压缩作业,同时处理它的最大线程(即子压缩)。值为1表示不存在子压缩。
* rocksdb-max-total-wal-size: 设置保留的WAL文件的最大大小限制。一旦达到此限制,RocksDB将强制刷新memtables以减小WAL文件的大小。
* rocksdb-merge-buf-size: 用于在创建二级密钥期间累积数据的合并缓冲区的大小(以字节为单位)。在创建数据的二级密钥期间,我们通过将新条目直接写入数据库中的最低级别来避免通过memtable和L0更新新索引。这需要对值进行排序,因此我们使用合并/排序算法。此设置控制合并缓冲区的大小。默认值为64Mb。
* rocksdb-merge-combine-read-size: 合并/排序算法中使用的合并组合缓冲区的大小(以字节为单位),如rocksdb-merge-buf-size中所述。默认值为1Gb。
* rocksdb-new-table-reader-for-compaction-inputs: 指示RocksDB是否应为每个压缩输入创建新的文件描述符和表读取器。这样做可能会占用更多内存,但可能允许为压缩输入文件指定预取选项,而不会影响用于用户查询的表读取器。默认值为false。
* rocksdb-no-block-cache: 禁用列缓冲区用于列族。
* rocksdb-override-cf-options: 用于为每个列族启用特定选项覆盖的选项字符串。
* rocksdb-paranoid-checks: 强制RocksDB重新读取刚刚创建的数据文件,以验证其正确性。
* rocksdb-pause-background-work: 仅测试启动和停止RocksDB中的所有后台压缩。
* rocksdb-perf-context-level: 设置通过perf上下文插件捕获的信息级别。
* rocksdb-persistent-cache-path: 如果设置了rocksdb-persistent-cache-size-mb,则表示持久性缓存可以存储文件的路径。如果设置了rocksdb-persistent-cache-size-mb,则必须设置此项。
* rocksdb-persistent-cache-size-mb: 如果需要,分配给RocksDB持久高速缓存的大小(以Mb为单位)。默认值为0(禁用)。
* rocksdb-pin-l0-filter-and-index-blocks-in-cache: 如果rocksdb-cache-index-and-filter-blocks为true,则这将控制RocksDB是否“锁定”缓存中的过滤器和索引块。默认为true。
* rocksdb-print-snapshot-conflict-queries: 如果为true,MyRocks会将生成快照冲突的查询记录到.err日志中。默认值为false。
* rocksdb-rate-limiter-bytes-per-sec: 控制允许RocksDB通过可记忆刷新和压缩写入媒体的速率。
* rocksdb-read-free-rpl-tables: 将在slave服务器上使用无读取复制的表(使用正则表达式)列表。默认为空。
* rocksdb-records-in-range: 仅测试以覆盖范围内记录返回的值。
* rocksdb-seconds-between-stat-computes: 设置重新计算优化程序的表统计信息之间的秒数。
* rocksdb-signal-drop-index-thread: 仅测试MyRocks丢弃索引线程的信号。
* rocksdb-skip-bloom-filter-on-read: 指示是否应在读取时跳过bloom过滤器。默认值为false。
* rocksdb-skip-fill-cache: 请求MyRocks跳过读取请求的缓存数据。
* rocksdb-stats-dump-period-sec:  设置执行RocksDB统计信息转储到info LOG文件的秒数。  
* rocksdb-strict-collation-check: 允许MyRocks检查并验证表索引是否具有正确的排序规则设置。
* rocksdb-strict-collation-exceptions: 与此正则表达式模式列表匹配的表名称可以跳过整理检查设置。
* rocksdb-table-cache-numshardbits: 设置RocksDB中的表缓存数。
* rocksdb-use-adaptive-mutex: 在RocksDB中启用自适应互斥锁,它在诉诸内核之前在用户空间中旋转。
* rocksdb-use-fsync: 在请求同步数据文件时,要求RocksDB使用fsync而不是fdatasync。
* rocksdb-validate-tables: 要求MyRocks验证所有MySQL的.frm文件与RocksDB中存储的表匹配。
* rocksdb-wal-bytes-per-sync: 控制RocksDB写出WAL文件数据的速率。
* rocksdb-wal-dir: 设置存储RocksDB WAL文件的目录。
* rocksdb-wal-recovery-mode: 在系统崩溃后恢复WAL文件时设置RocksDB的容差级别。
* rocksdb-whole-key-filtering: 使bloomfilter能够使用整个密钥进行过滤而不仅仅是前缀。为了使其有效,查找应使用整个键进行匹配。
* rocksdb-write-disable-wal: 禁用日志数据到WAL文件。适用于批量加载。
* rocksdb-write-ignore-missing-column-families: 如果为true,则RocksDB将忽略对不存在的列族的写入。
* rocksdb-skip-bloom-filter-on-read: 不要在读取时使用bloom过滤器。
* rocksdb-skip-unique-check-tables: 跳过指定表的唯一约束检查​​。
* rocksdb-store-row-debug-checksums: 在编写索引/表记录时包括校验和。
* Include checksums when writing index/table records: 收集有关表属性的统计信息时要采样的条目百分比。指定0以采样所有内容或百分比。
* rocksdb-tmpdir: DDL操作期间临时文件的目录。
* rocksdb-trace-sst-api: 每次调用SstFileWriter时,在日志中生成跟踪输出。
* rocksdb-unsafe-for-binlog: 允许基于语句的二进制日志记录可能会破坏一致性
* rocksdb-use-direct-reads: 打开文件进行读/写时启用直接IO。这意味着不会缓存或缓冲数据。
* rocksdb-use-direct-writes: 与rocksdb-use-direct-reads类似
* rocksdb-verify-row-debug-checksums: 读取索引/表记录时验证校验和。
* rocksdb-wal-size-limit-mb: RocksDB WAL允许增长到的最大大小。当超出此大小时,rocksdb会尝试刷新足够的memtables以允许删除最旧的日志。
* rocksdb-wal-ttl-seconds:  不存在早于此值的WAL文件。