Polardb 如何替换MYSQL 之 IMCI 列式(2)系统的核心与关键

news2024/12/27 16:50:08

ee51150755e5092c4bdca373b3e2a582.png

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群。

本期继续上期的相关的部分,继续对POLARDB  IMCI 列式的使用方式以及问题进行研究。在开始之前的,也想说说为什么要搞这个 IMCI 的初衷,众所周知,数据库OLTP OLAP 本来就是一对产生于不同业务的需求,业务的需求不同导致数据库应对不同的架构来进行不同的架构设计,所以OLTP OLAP 本来就应该是分开的,而为什么众多的数据库产品要进行 HTAP。

这些还是来自于需求,以及贪婪。 终究人类本性就是贪婪的,什么都想要,什么都想得到。HTAP 就产于与贪婪的欲望中,妄想一个数据库产品能解决所有的问题。实际上我们在进行POLARBD IMCI 的研究上不是出于无知和愚蠢的想法。我们仅仅是让一些基于MYSQL 上的一些应用,能稍微在不变动数据库的同时,能稍微有一些轻量级的OLAP 的特性,所以揣测我们都是一堆额度的欲望狂魔的人可以歇着了。

我们要解决的问题很明确

1  MYSQL 对于一些 COUNT , DISTINCT , GROUP BY ,ORDER BY ,以及一些SUM 等具有聚合方式的简单计算的提速工作。

2  稍微能在开发能力不行,业务要求开发进度紧的情况下,能稍微死的不难看,至少让管理数据库的我们,有一定的承受力,不至于让那些 developer  and  production manager 搞死数据库。

所以我们的任务也很简单,POLARDB IMCI 的研究和使用就不是要做OLAP ,而是轻奢的 OLTP 。OK 我们的需求与定位已经明确了,我们不是贪婪的,仅仅是要解决一个棘手的问题,提供一个POALRDB 可以给出的解决方案。至于 HTAP ,这个方案还没有到这个地步。

下面继续说相关这个解决方案的问题,或者说核心问题
分流
对分流,一个SQL 到底应该是去行存解决 问题,还是去列存解决问题,这是一个非常重要的问题,如果走错了,那么必然导致我们的解决方案的失败的问题。
这里POALRDB 的解决方案中如何进行SQL 语句的分离是一个核心的问题,这里POALRDB 通过cost 的阈值的问题的方式来将SQL 进行导流。实际上我们在看到这个方案的时候我们是有一些担心的,因为COST的部分如果是一个固定值,如果随着数据库的变大,那么一些适合在行中进行处理的部分也要通过列存在进行处理,那么可能就会引起更多的问题。

这里的设置是通过代理来进行设置的,这里的设置需要两个步骤
1  在集群地址的代理中设置为

7d0792288a1cb2dc2ce3b636f40237c6.png

在主代理中选择  可读可写

0aa717f37cc1427132258e423c025289.png

在只读代理中选择 基于活跃请求负载均衡

c3bd41687e2377529673a5dbee6d96db.png

同时在HTAP 行/列自动引流 需要进行开启

3acecfbfd65697dcbbade949a29054c1.png

实际上学到这里,这个系统最关键的地方就已经到了,就是自动引流的部分,也就是需要 DBA 来设置判断语句 COST 进行值的设定后,保证超过DBA 设置的COST 值后的SQL 去列存来进行SQL 的处理。

那么在熟悉这个问题后,我们就已经知晓了我们工作的核心部分loose_imci_ap_thresold     这个参数是根据SQL的预估自行的代价的阈值来将SQL 发往不同的节点 (行  /  列)

loose_cost_threshold_for_imci 这个参数的目的是产生什么样的执行计划,如果超过值的设置就使用列存的执行计划。  

读到这里,估计不少人会产生一个疑问,嗯,不是已经路由到了列式的节点中了吗为什么还要在判断一次是否执行列式的执行计划。

实际上这个列存,只是一个行存中保存了列的索引的部分的可见节点,在执行中有些语句并不适合列式存储计算,所以分配到了列式引擎中,如果无法进行执行那么还是需要返给行引擎来处理。

同时针对列引擎,POLARDB 优化了 table scan , nested loop join , hash join , group by aggregation  等特殊的一些数据处理的部分。

除此以外,POLARDB 还支持手动的方式来启动对列式引擎进行访问的方式,比如使用HINT 的方式。这里就不进行详细的介绍了。

除此之外,我们还有一些其他的问题,如需要更深入到POALRDB 的列存储的使用中。
举例

1   高频插入数据对于整体系统的影响问题,需要压测
2   索引的维护与数据量有效性的问题
3   语句的限制与什么样的情况更适合 POALRDB 列存
4   POALRDB 的列压缩对于系统性能的提升或影响
5  如何查看语句使用列式的执行计划
6   列式的参数和status以及列式的监控等

45b78aac791d644873d0324a5034e190.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/437426.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何docker安装es和kibana以及ik分词器

推荐用portainer进行可视化 1.创建网络--让es和kibana容器互联 docker network create es-net 2.部署单点es docker run -d \ --name es \ -e "ES_JAVA_OPTS-Xms512m -Xmx512m" \ -e "discovery.typesingle-node" \ -v es-data:/usr/sha…

Java垃圾回收机制

Java垃圾回收机制 垃圾回收算法为什么垃圾回收回收哪些内存如何回收Marking-Sweep(标记-清除法)Marking-Compat(标记-整理法) 内存分代年轻代 Minor gc和Major gc的区别常见回收器Serial Garbage CollectorParallel Garbage Colle…

InnoDB的表空间

独立表空间结构 区概念 连续的64个页就是一个区,也就是说一个区默认用1MB空间大小。表空间由若干个连续的区(物理位置上的连续)组成的,256的区被划分成一组。 其中,extent0~extent256个区算是第一组,exten…

基于微信小程序的家政服务预约系统的设计与实现

基于微信小程序的家政预约系统,有效解决了人们网上随时预约家政服务的问题。依托于新的小程序开发环境,解决了"跨系统开发"这个难题,在一个"类操作底层"开发基于微信小程序的家政服务应用。功能模块包括:家政服务项目展示模块,服务报价模块,用户留言评价模…

零门槛,手把手教你玩转ChatGPT,顺滑般国内使用chatGPT

国内是可以玩ChatGPT的,只需要去官网注册一个OpenAI帐号,然后使用第三方接码平台获取短信验证码,就可以成功注册帐号,注册成功之后国内就可以随意使用chatGPT啦。 国内怎么玩chatGPT如下: 官方原版 一、注册OpenAI账…

ansible——编写循环和条件任务

环境:RH294 1. 以student用户的身份并使用student作为密码登录workstation ssh studentworkstation 在workstation上,运行lab control-flow start命令,此命令会创建control-flow工作目录 lab control-flow start 2. 切换到/home/studen…

Python中PIL库的常用用法示例

Python中的PIL(Python Imaging Library,已更名为Pillow)是一个功能强大的图像处理库。以下是一些常用的PIL功能及相应的代码示例: 1. 打开和保存图像: from PIL import Image# 打开图像 image Image.open("exam…

B+G双轮驱动,税友股份迎来数字化东风

配图来自Canva可画 不知不觉之间,国内的数字经济已经蔚然成潮。据相关部门的统计数据显示,去年国内数字经济规模已经达到了50万亿,占到了国内GDP总量的40%以上,增速更是持续领先于GDP增速。与此同时,随着数字中国战略…

权限提升:网站漏洞(提权思路.)

权限提升:网站漏洞 权限提升简称提权,由于操作系统都是多用户操作系统,用户之间都有权限控制,比如通过 Web 漏洞拿到的是 Web 进程的权限,往往 Web 服务都是以一个权限很低的账号启动的,因此通过 Webshell …

The Foundry Modo 16 for Mac v16.1v3 含历史版本

The Foundry MODO是一个功能强大的3D建模、动画和渲染软件,被广泛应用于游戏开发、电影制作、产品设计和建筑可视化等领域。 以下是一些MODO的优点: 1. 强大的建模工具:MODO提供了一系列丰富的建模工具,包括多边形建模、NURBS建…

mysql索引失效的坑

目录 前言 博客文章分享 对索引字段做函数操作 隐式类型转换 隐式字符编码转换 原因分析 解决方法: 前言 在MySQL中,有时候会因为语句使用不当导致sql不走索引,从而使数据库的压力变大。本篇分享一下sql不走索引的坑,让大家…

Nginx 和Rewrite

系列文章目录 文章目录 系列文章目录一、常规的nginx正则表达式1.location和rewrite的区别2.常用的nginx的正则表达式3.nginx里面的优先级 二、rewrite1.Rewrite2.实验 总结 一、常规的nginx正则表达式 1.location和rewrite的区别 从功能看 rewrite 和 location 似乎有点像&a…

GPT-2隐私泄露论文阅读:Extracting Training Data from Large Language Models

文章目录 论文地址:原文阐释:渔樵问对:原理梗概预防策略隐私策略这个新颖的攻击方式是什么?三种典型采样策略:隐私风险文章第5页第二段中提到的 memorized training exam ple 是什么意思 ThreatModel &Ethics什么是文本的zlib…

【Apache 网页与安全优化】

1.网页压缩 检查是否安装 mod_deflate 模块 apachectl -t -D DUMP_MODULES | grep "deflate"如果没有安装mod_deflate 模块,重新编译安装 Apache 添加 mod_deflate 模块 systemctl stop httpd.service cd /usr/local/httpd/conf mv httpd.conf httpd.c…

数字硬件建模SystemVerilog-通信总线建模 --Interface端口的概念

来到了SV最后一部分,预计三篇文章,两周更完,所有的思维导图如下: 概述 SystemVerilog Interface是modport的一种,但比简单的输入、输出或输入输出端口的功能更多。在其最简单的形式中,Interface端口将相关的…

关于户外旋转LED显示屏的核心技术

户外旋转LED显示屏因可视范围达360的新颖结构,并且成本低廉,而得到了迅速的发展。虽然看着外观与普通LED显示屏没有什么大的异样,但为使设计的户外旋转LED显示屏具有较好的显示效果,背后也是需要通过众多工程技术人员克服技术难点…

git lfs简易使用教程

参考资料: https://zzz.buzz/zh/2016/04/19/the-guide-to-git-lfs/ 这篇随笔简单记录一下git lfs的使用教程,只记录最为常用的部分,并阐述原理,方便后面查阅。 首先说明一下git lfs的原理,看名称:git lfs。…

电力监控系统在智能建筑电气节能中的应用

摘要:电力监控系统在智能建筑中被广泛使用,其以及时、稳定、安全、便捷的优点提高了电能使用效率,节约了成本。借助电力监控系统能准确判断故障发生原因和位置,为智能建筑的安全性和智能化发展提供了有力的支持 关键词&#xff1…

华为,找寻科技秋天里的春光

捷克导演伏拉基米尔米切尔在2001年指导了一部电影,叫做《秋天里的春光 Bab lto》。 我很喜欢这个名字,它吐露着一种简单质朴的美好。回望历史,我们会发现文明与知识经常陷入秋天,但却因为人类的一次次努力,最终我们迎来…

电脑提示vcruntime140_1.dll丢失的正确修复方法

vcruntime140_1.dll是vs2010编译的程序默认的库文件它的丢失易导致游戏、应用软件等程序运行出现错误,致使程序无法正常运行,下面小编教大家电脑提示vcruntime140_1.dll丢失的正确修复教程 首先打开一个360,搜狗等等电脑浏览器,输…