首页 > 数据库 >内存数据库的自动优化怎么做?

内存数据库的自动优化怎么做?

时间:2022-08-24 16:55:22浏览次数:63  
标签:merger 数据 数据库 行段 内存 background 排序 优化 入库

以柏睿数据内存分布式数据库RapidsDB来说明的话,自动优化体现在2个阶段:数据入库过程和数据入库后。我这里重点分享一下数据入库后。 基本实现手段如下:我们都知道如果表中的行在所有行段中都是全局排序的,那么列式表的性能最好。实际上,在连续写入的情况下,维持这样的顺序是极难的。 RapidsDB使用了一种高级的算法,允许它在新增或更新数据时尽可能保持有序。这个过程被称为background merger,并且为使行段的数据顺序能够得到持续优化,则该过程会一直在后台自动运行。 当background merger在运行过程中,在库内数据被增删改等改变时,它会停止到当前任务并且重新开始。鉴于每次只处理一小块行段数据,所以被停止的任务影响的只是少量的数据。只有在大量的更新工作负载下,重新排序处理效率才会显著减慢,这是因为另一个机制pessimistic merger会锁定当前正在处理的行段。用户也可以通过运行命令OPTIMIZE TABLE手动触发pessimistic merger。我们将在下面解释如何决定是否有必要进行该指令,并如何运行它。 RapidsDB使用sorted row segment group(排序行段组)的概念来描述参与排序的一组行段。即行段重新排序的过程,并且对于一个行段而言,其最小的行号不小于其之前的任何行段中最大的行号,则这些行段形成排序的行段组。这里所描述的一行比另一行小,是代表该行的CLUSTERED COLUMNSTORE键的列值比另一行的列值小。 如果数据有一个完美的全局顺序,它将由一个排序的行段组组成。如果刚入库的原始数据是以完全随机的顺序排列的,那么它会包含与行段一样多的排序行段组。background merger的任务逻辑就是重新组织行段之间的行,即尽量减少排序的行段组的数量。

标签:merger,数据,数据库,行段,内存,background,排序,优化,入库
From: https://www.cnblogs.com/ssyzuu/p/16620726.html

相关文章

  • arm linux虚拟内存布局【转】
    转自:https://blog.csdn.net/sxw1002/article/details/52841762Documentation/arm/memory.txt中的描述:开始位置 结束位置 使用0xffff8000 0xffffffff 用于copy_user_page......
  • 【JAVA】数据库加密字段搜索方案
    今天看到一篇文章,讲到加密字段的模糊查询,看到这个标题的时候心里还没有太明确的答案,怀着学习的心态看完了整篇文章,然后又查阅了很多文章都没有具体实现代码片断,于是乎就试......
  • 内存池
    importscala.collection.mutableimportscala.io.StdInimportutil.control.Breaks._objecttest{defmain(args:Array[String]):Unit={//获取输入......
  • oracle数据库性能监控常用sql
    因执行时间较长建议使用plsql等第三方工具执行--1.监控sga内存分配信息select*fromv$sgainfo;--2.监控每个用户的磁盘io及io命中率selectv$sess_io.*,(block_gets+con......
  • 产学研合作生态硬核来袭,共探数据库技术发展与应用
    腾讯云数据库一直致力于推动数据库基础研究创新、数据库产学研合作生态建设,助力国产数据库学术人才培养和技术创新生态建设发展。为让更多数据库从业者了解数据库领域的最......
  • Linux mysql数据库自动备份脚本策略
    1.创建保存备份文件的文件夹mkdir/data/mysqlbak 2.编写脚本cd/data/mysqlbakvisqlAutoBak.sh SH脚本内容:DB_USER="root"DB_PASS="root"#你的数据库密码D......
  • 设置Mysql数据库允许远程连接
    Mysql数据库用户权限设置1.进入容器dockerexec-itmysql_test/bin/bash注意:由于我是通过docker安装的数据库,所以在操作之前需要进入容器,直接安装在本机的用户可以跳......
  • delphi 做一个带树状结构的下拉框(基于数据库)
    注:本篇内容与上一篇内容有部分关联:https://www.cnblogs.com/yoooos/p/16610379.html效果要求:一.每次点击cxPopupEdit1时,弹出树状结构二.树状结构的数据为数据库实......
  • PerfView专题 (第十篇):洞察 C# 终结队列引发的内存泄漏
    一:背景C#程序内存泄漏的诱发因素有很多,但从顶层原理上来说,就是该销毁的用户根对象没有被销毁,从而导致内存中意料之外的对象无限堆积,导致内存暴涨,最终崩溃,这其中的一个......
  • 标准IO-内存流
    fmemopentype参数......