首页 > 数据库 >Polardb 如何替换MYSQL 之 IMCI 列式攻略

Polardb 如何替换MYSQL 之 IMCI 列式攻略

时间:2023-06-22 12:05:52浏览次数:55  
标签:语句 列式 数据库 IMCI 查询 MYSQL POALRDB


Polardb   如何替换MYSQL 之 IMCI 列式攻略_mysql

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。

MYSQL 是ORACLE 后面经常被提到要替换的数据库,MYSQL 为什么要被替换,嗯这点是一言难尽,但是可以说明的是,替换MYSQL 的数据库类型还蛮多的, 今天要说明的就是POALRDB FOR  MYSQL 的一个特性,列式存储。

我们都知道MYSQL即使目前的MYSQL 8.030 或更高的版本在处理OLAP 轻量级的情况下,还不是一个好的选择,对比其他的数据库POSTGRESQL 在OLAP 处理上是无法进行比较的,而MYSQL 的被替换的问题,不光是在线下,在线上也是火热一片。POLARDB 作为阿里云的当家花旦,替换MYSQL已经是云上上了阿里云的一段佳话。

从成本的角度,从使用的扩展性,以及安全性等等等等,MYSQL RDS 都是弟弟。今天要说的是POALRDB for MYSQL的另一个打击MYSQL RDS 的数据引擎,IMCI, 通过IMCI 可以将POLARDB FOR MYSQL 从OLTP 变为OLTP + OLAP 的 HTAP 系统,简言之MYSQL 最大的缺点将不在存在。

首先需要了解的,如MYSQL + CLICKHOUSE 虽然是解决线下MYSQL OLTP+OLAP的一套方案,但是缺点也是有的,如这样的方案是后备式的,不是在线式的。

因为POALRDB 本身就是新一代基于云厂商硬件基础上研制的数据库产品,他整体抛弃了MYSQL 的设计方式,举例

1  POALRDB 的优点之一就是 POALRDB 的 PROXY ,这套PROXY 可以将你的语句直接分发到 写节点,或读节点,或列式节点,根据优化器产生的语句的COST 来将你的语句一分为三。同时CBO 优化器同时面向行 列存根据COST 选择语句的具体计算对象。

2  POLARDB 的优点之二,就是 shared storage ,即使加了列式 IMCI 也是一套存储,那么一套存储的优点非常多,数据的同步过程省去了,数据的一致性更能保证,避免了 PAXOS RAFT 协议在一些  shared nothing 方面的弊病(其实就是性能问题),并且在硬件底层进行了分布式写的设计,从硬件解决了数据的安全性的问题

Polardb   如何替换MYSQL 之 IMCI 列式攻略_数据库_02

3  结果的汇聚,一条语句,多重处理方式,最终你却在一个位置获得数据的结果,这是POALRDB 的优点之三。

最终让你用起来和MYSQL一样一样一样的,但是那些MYSQL的问题又都消失了。(不需要SQL的重写或人工改变)

Interesting !!!!!!!

Polardb   如何替换MYSQL 之 IMCI 列式攻略_子查询_03

除此以外 POLARDB FOR MYSQL 的IMIC 解决方案还可以成为单独的OLAP的解决方案。通过节点与代理之间的关系的调整,IMIC 节点很容易成为一个单独面对OLAP 场景下的数据节点,可狼 可奶。

Polardb   如何替换MYSQL 之 IMCI 列式攻略_数据_04

说完了好的,的说说一些限制和我们已经知道的问题。

首先说数据库智能的那帮子东西,不要轻易信他们,数据库是一个动态变化的产品,而不是和其他的非数据库部分是静态的,静态的东西好管理,动态的,有业务逻辑契合的东西是不好管理的。你设置的一些固定的东西,不知道在什么时间就被打破了,打破了,其他的好说,数据库就可能产生各种各样的问题。

列式的部分也是这样,虽然很好也有自己的问题

1  对于语句的一些问题,是无法使用列式的情况,如子查询中出现 group by , order by 的情况,是无法进行列式引擎的数据处理的。

2  CTE 通用表达式中,进行递归查询的是无法进行列式存储IMCI的查询的(这点是可以理解的)

3  子查询中出现 JOIN 的语法

4   子查询中出现LIMIT 的字句

5   子查询中出现了窗口函数

6   子查询中出现了UNION 的部分

除此以外,一些特殊的表达式等出现在语句中也是无法进行处理的

1  REGEXP 查询模式是无法进行了, like 部分也是无法进行列式查询的。

2  一些特殊的函数部分,如聚合函数 JSON 类的是无进行列式处理的

3   加密与压缩算法类的函数

当然这个解决方案目前我们预估可能存在的一些问题,也的说明一下,因为这个IMCI 是在去年上线的新功能,所以还需要一些更多的用户来进行使用并总结经验。

问题1 :用户需要更多的数据库知识,因为在列式节点加载后,是需要人工来进行表和列的确认,并自行进行索引的添加的。这点就需要更有相关业务知识和语句优化方面知识的DB 人员来进行专业的操作,而不是建立好列式就可以直接工作了,

建议需要进行压测,并将目前在系统中运行部良好的,适合列式的语句挑选出来,然后进行添加列存,在压测后查看相关的优化的结果。

问题2 :列式调优参数多,需要一定时间一定经验去调整,并且可能是反复调整。loose_imci_optimizer_switch  ,loose_imci_auto_update_statistic,loose_imci_max_enum_join_pairs 。

目前我们对于列存方面还在测试阶段,还在磨合,后面有更多的关于列存在POALRDB 的使用的问题和经验会继续分享。 

总结:POALRDB FOR MYSQL 给了使用MYSQL 的开发一个新的数据库模式,一个可以尝试将MYSQL 的问题尽量移除,更强大的"MYSQL"

Polardb   如何替换MYSQL 之 IMCI 列式攻略_mysql_05

标签:语句,列式,数据库,IMCI,查询,MYSQL,POALRDB
From: https://blog.51cto.com/u_14150796/6534549

相关文章

  • MYSQL 5.7 升级 8.0 后的 由于字符集导致的大问题 ?
    开头还是介绍一下群,如果感兴趣polardb,mongodb,mysql,postgresql,redis等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。MYSQL8.0已经很多年了,但是,但是,但是,还有很多公司和业务项目在MYSQL5.6,5.7上继续奋斗,这还不是一个重要的问题,重要的问题是早期......
  • POSTGRESQL 和 MYSQL 到底应该不应该控制活跃连接
    开头还是介绍一下群,如果感兴趣polardb,mongodb,mysql,postgresql ,redis等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。最近群里某个同学的提问,引起的本篇文章,关于数据库连接的部分,没有废话,我们先针对MYSQL来说说数据库连接的部分。首先MYSQL的客......
  • 我也不知道该怎么回答这个问题,还学MYSQL 吗?
    开头还是介绍一下群,如果感兴趣polardb,mongodb,mysql,postgresql,redis等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题最近一个同学偶然问了我一个这样的问题,实话说我不知道该怎么回答这个问题。但我知道问这个问题的同学,他思考了,不是在追风,一会儿MYSQ......
  • MYSQL collation 选好还能换吗
    开头还是介绍一下群,如果感兴趣polardb,mongodb,mysql,postgresql,redis等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。Collation 主要的作用是什么,排序。 数据库中的字符众多,而在这里很多的查询中都对这些符号进行一些比对的工作,如A=a,B>B......
  • MySQL
    初识MySQLJavaEE:企业级Java开发、Web前端(页面:展示——数据);后端(连接点:连接数据库JDBC,连接前端——控制视图跳转和给前端传递数据);数据库(存数据,Txt,Excel,world)。程序员等级:只会写代码,没学好数据库,基本混饭吃。操作系统,数据结构预算法!当一个不错的程序员!离散数学、数字电路......
  • MySQL 视图&存储过程&函数
    1视图1.1视图的作用当我们创建一张表的视图后,可以用和表差不多的使用方式来使用视图,比如可以对视图进行select查询操作、过滤或者排序数据等等。同时,也可以联结其它视图或者表,甚至可以添加和更新数据(但一般不会这么做,而且存在诸多限制)。总结起来,视图有以下优点:重用SQL语句,简......
  • LoadRunner通过SiteScope监控MySQL的性能
    步骤:安装SiteScope下载Java版的MySQL驱动,下载地址:http://www.mysql.com/downloads/connector/j/下载成功后,把解压缩的mysql-connector-java-5.1.14-bin.jar文件放入:C:\SiteScope\java\lib\ext 以及 C:\SiteScope\java64\lib\ext目录下。重启系统.进入SiteSc......
  • MySQL约束
    1约束1.1约束分类NOTNULL:非空,用于保证该字段的值不能为空。比如姓名、学号等。DEFAULT:默认,用于保证该字段有默认值,比如性别。PRIMARYKEY:主键,用于保证该字段的值具有唯一性,并且非空。比如学号、员工编号等。UNIQUE:唯一,用于保证该字段的值具有唯一性,可以为空。比如座位号。......
  • mysql - #1067 - Invalid default value
    mysql中无法设置默认值为函数或者表达式,如果你强制设置时,就会报错误:#1067-Invaliddefaultvalue。这不是mysql的bug,而是故意这么设计的。参看:http://dev.mysql.com/doc/refman/5.0/en/data-type-defaults.html这里写道:"TheDEFAULTvalueclauseinadatatypespecification......
  • 备份 mysql数据
    Mysql数据库的常用备份方法是使用使用mysqldump,其命令格式如下:#mysqldump[options]database[tables]其中参数的含义为:options:代表mysqldump的选项,通过mysqldump–help可以查到。database:代表将要备份的数据库tables:代表将要备份的表,如果不指定任何表,则备份整个数据库......