Mycat问题规避

openEuler22.03下MyCAT2安装全攻略:从JDK配置到避坑指南 本文详细介绍了在openEuler 22.03操作系统上部署MyCAT2分布式数据库中间件的完整流程。内容涵盖从JDK 1.8环境配置、安装包获取与解压、后端MySQL数据库准备,到MyCAT2核心配置、启动验证及常见问题排查。重点提供了在国产操作系统环境下构建企业级数据库平台的实战步骤与避坑指南,帮助用户高效完成安装与初步配置。 阅读详情

前言

众所周知,mycat 是一个分布式数据库,前几年很火,其实也就火了两年,现在官网也不太活跃,但是还有一些公司在用,根据本人的使用经验,希望可以对大家有些帮助

分组统计问题

结论: 首先mycat底层依赖的数据库以mysql5.7 为例,凡是分组的对象 该字段必须查询,但是mycat对分组不友好,如何保证数据分组的正确性
a:当需求是根据表字段分组且包含子查询,此时子查询内以及外面都根据分组字段进行分组
b: 当分组的对象非表字段是自己构造的临时字段并要求该构造字段分组,包含子查询,此时子查询内不需要分组但是外面都根据分组字段进行分组
c: 主要原因是mycat分片结果的影响,分片对表字段影响很大,对构造的临时字段无影响

比例计算问题

由于mycat 分片的影响,同一个分片或许是准确,但是最终的结果是不正确,在极端某些情况也是可以的,保险起见,到拿到内存里面算,当前页回传从新赋值

分页排序问题

由于mycat分片的影响,每次有几个分片就会同时执行几条sql,每次返回取决各个分片的响应速度,不能保证唯一,是随机的,可以选择以分片规则的字段进行order by 即可保证有序

函数兼容问题

很多mysql的函数是不支持的,一定要在mycat环境进行测试,当发现查到的数据与自己期望的数据相差很大的时候,要看看自己的语法是否正确,在大多是情况下,写错了也能运行,十分不严谨

增删改查

仅仅支持单条数据的增删改查,只能选择全量的更新,替换

sum和count 问题

sum( case when age>25 then 1 else 0 end) as totalAgeNum    ok
count( case when age>25 then 1  end) as totalAgeNum          ok
count( case when age>25 then 1 else 0 end) as totalAgeNum   error (因为分片会把0当做1加和)

limit问题

每个mycat限制查询的总数,比如10000,当对于这个数,必须写一个maxQueryNmber,让limit 失效,不然总是查询10000条,数据量少的时候还发现不了,隐藏的地雷坑

索引问题

加索引尽管有效,但是收效甚微,主要还是和数据量,mycat配置和mysql的硬件配置有很大的关系

分片问题

分片不是越多越好,符合一个正态分布,一定要做压测,进行数据分析

Mycat【什么是Mycat、Mycat与其他中间件区别、Mycat应用场景、核心概念详解、Mycat原理】(一)-全面详解(学习总结---从入门到深化) 阅读详情

相关推荐

centos7下100T存储扩容(LVM)至150T

查看新增磁盘情况lsblk,fdisk -l [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 4.2G 0 rom vda 252:0 0 80G 0 disk ├─vda1 252:1 0 1G 0 part /boot └─vda2 252:2

tiyager的博客 1025

项目使用mycat,出现数据查询不全问题

进入 conf 目录,查看配置文件schema.xml 解决办法1 sqlMaxLimit="2000" 表示限制数据最大查询数为2000条, 可以选择把sqlMaxLimit限制调高。 解决办法2 给指定表关闭最大查询数限制, 如果要给表res_consignee关闭最大查询数限制, 在table标签上加上属性needAddLimit=false, 如下: ...

qq_40593496的博客 2046

保姆级教程:手把手教你下载和配置Waymo自动驾驶数据集(附百度网盘链接)

本文提供了一份详细的Waymo自动驾驶数据集下载和配置指南,特别针对国内研究者优化了数据获取方案,包括百度网盘链接和Google Cloud CLI配置。文章还涵盖了环境配置、数据处理实战、可视化分析以及进阶技巧,帮助开发者高效利用这一业界黄金标准数据集进行自动驾驶研究。

weixin_42651281的博客 372

Mycat分表统计的一些问题

问题一:分片前,统计结果只有一条记录; 分片后,返回多条(分片数)统计结果记录。 通过explain可知,分表后相当于SQL分成多个SQL语句查询分表,最后UNION合并结果集。 如下所未 解决方式:1. 含有null值的比较棘手。 2.如果结果是数值型,则可以用在原始语句外增加一层嵌套SQL统计代码,如 select sum(统计字段) sumval from(原始SQL语句.....

kieven2008的专栏 1071

RT-Thread stm32h7使用串口DMA

stm32h7在rtthread中无法使用串口DMA,通过更改驱动代码使其支持串口DMA

qq_35141454的博客 2287

Kappa函数:测量一致性并计算置信区间的R语言包

Kappa函数是一种常用的统计量,用于衡量两个评估者之间的一致性。在R语言中,有一个名为"vcd"的包提供了计算Kappa函数以及相应的置信区间的功能。本文将介绍如何使用"vcd"包来计算Kappa函数的值,并进一步计算置信区间。Kappa函数的值介于-1和1之间,值越接近1表示评估者之间的一致性越高,值越接近-1表示评估者之间的一致性越低,值接近0表示评估者之间的一致性接近于随机。通过以上步骤,我们成功地使用R语言中的"vcd"包计算了Kappa函数的值和置信区间。接下来,我们可以使用"vcd"包中的。

2301_79331230的博客 1877

Mycat从入门到放弃

当初写这篇文章的初衷只是想提醒自己在用一个开源产品前不仅要了解其提供的功能,更要了解其功能和场景边界。 1.非分片字段查询 Mycat中的路由结果是通过分片字段和分片方法来确定的。例如下图中的一个Mycat分库方案: 根据 tt_waybill 表的 id 字段来进行分片 分片方法为 id 值取 3 的模,根据模值确定在DB1,DB2,DB3中的某个分片 如果查询条件中有 ...

Dobbin 9万+

【100%通过率】华为od机试C卷【特殊的加密算法】Python 实现

有一种特殊的加密算法,明文为一段数字串,经过密码本查找转换,生成另一段密文数字串。规则如下1.明文为一段数字串由0-9组成2.密码本为数字0-9组成的二维数组3.需要按明文串的数字顺序在密码本里找到同样的数字串,密码本里的数字串是由相邻的单元格数字组成,上下和左右是相邻的,注意:对角线不相邻,同一个单元格的数字不能重复使用。

MISAYAONE的博客 5924

Mycat 使用问题一则 通过mycat插入,却不能查询

游戏项目需要全球同服,做分布式架构。数据库需要分库,在使用 Mycat 中间件时,需要一个插入全局唯一id的问题,测试代码如下:import pymysql import datetime import random import socket import time con = pymysql.connect(host = "127.0.0.1", port = 8066, user = "r...

zhouguoqionghai的博客 8764

Altium Designer应用技巧5: Altium Live账号的获得

为了更好的应用Altium Designer,我们需要得到一个Altium Live账号,但从其英文或者中文官方网站取得,都需要7个工作日的时间,而且对于个人用户来说,并不是100%都能够获取到。本文介绍一种,从俄罗斯Altium官方网站获取账号的方法,可以立即使用。     1、点击http://live.altium-ru.com/#Join网址进入俄罗斯Altium官方网站,Altiu

snmplink的博客 1万+

嵌入式软考必备知识点:嵌入式系统开发中的重要概念和示例代码

在嵌入式软考中,有一些重要的知识点需要掌握,包括嵌入式系统的基本概念、编程语言、实时操作系统和硬件接口等。实时操作系统是一种专门设计用于嵌入式系统的操作系统,可以提供对任务调度、中断处理和资源管理等方面的支持。GPIO(通用输入输出):GPIO是嵌入式系统中常用的硬件接口,用于连接外部设备和嵌入式系统。以上是嵌入式软考中的一些必备知识点,包括嵌入式系统的基本概念、编程语言、实时操作系统和硬件接口。通过配置串口的波特率、数据位数和校验位等参数,可以实现与其他设备的可靠通信。一、嵌入式系统的基本概念。

PixeGO的博客 314

mysql cat sql_MyCat不支持的SQL语句总结

已知的MyCat不支持的SQL语句类型如下:SELECT:跨分片(实体库)的交叉查询跨节点的联合查询 (如用户库的表和平台库的表做联合查询)INSERT:插入的字段不包含分片字段 (如插入tbl_user_base_info表,没有提供user_id列)插入的分片字段找不到对应分片复制插入Insert into…select…多行插入insert into tab_a(c1,c2) values(...

weixin_39947501的博客 601

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

警惕!批量Update操作不当可能引发服务崩溃

基于以上分析得出结论:mycat版本较低无法支持批量update,提交批量update语句致Mycat乱报,进而引发一系列问题。针对以上问题,给出以下解决方案:1、规避业务写批量更新语句;2、中间件升级mycat版本,但目前有很多定制化开发,中间件不是太愿意升级。3、换成其他中间件比如shardingjdbc;短期按方案1执行,目前分片库存量数据量达到将近百亿,明年逐步完成去Mycat。本文由博客一文多发平台OpenWrite发布!

weixin_47095883的博客 498

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

彻底分清:垂直分库、水平分库、垂直分表、水平分表(附 Mycat 完整配置)

本文详细介绍了Mycat数据库中间件中四种分库分表策略的配置方法:垂直分库、水平分库、垂直分表和水平分表。文章基于Mycat 1.6+版本,通过schema.xml和rule.xml的配置示例,清晰展示了每种分片方式的实现要点。重点包括:垂直分库按业务划分无需分片规则;水平分库需定义分片键和路由算法;垂直分表按字段拆分;水平分表按数据行拆分。提供了可直接套用的配置模板,帮助开发者快速掌握Mycat分库分表的核心配置技巧。

weixin_68315058的博客 245

MyCat(看这一篇就够了)

Mycat是数据库中间件,所谓中间件数据库中间件是连接Java应用程序和数据库中间的软件。一个彻底开源的,面向企业应用开发的大数据库集群支持事务、ACID、可以替代MySQL的加强版数据库一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server结合传统数据库和新型分布式数据仓库的新一代企业级数据库产品一个新颖的数据库中间件产品Mycat作用为:能满足数据库数据大量存储;提高了查询性能。

m0_74436895的博客 1万+

mycat

分库分表、mycat

qd168的专栏 1201

【Mycat2实战】一、Mycat简介

什么是MycatMycat是数据库中间件,所谓中间件数据库中间件是连接Java应用程序和数据库中间的软件。为什么要用MycatJava与数据库的紧耦合高访问量高并发对数据库的压力读写请求数据不一致为什么要主从复制注意: MySQL是现在普遍使用的数据库,但是如果宕机了必然会造成数据丢失。为了保证MySQL数据库的可靠性。就要会一些提高可靠性的技术。如何解决性能问题生活中有很形象的例子,比如你去超市买东西,如果只有一个收银台,只可以排一队一次等待,如果有多个收银台,就可以排多队,大大提升了效率。

笑小枫 1336

五分钟带你掌握 MySQL 读写分离

今天我们聊了 MySQL 的读写分离,读写分离几乎在所有大并发的场景得到了运用。主写从读已经成为一个很普遍的技术场景。读写分离给我们带来方便的同时,我们也要注意主从同步的延时。通常可以通过 API 强制走主库来避免这个问题,但是这就相当于没有做读写分离,更好的方案是在业务上避免这种操作,比如不要在插入之后立刻读取。我们讨论了读写分离的原理和市面上常用的工具,虽然有很多中间件很有名,但是大厂还是用 Sharding-JDBC 最多,因为 Sharding-JDBC 轻量、几乎无侵入。

sjkflw121150的博客 636

Mycat深入学习

  Mycat深入学习   海量数据的存储问题 如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升。 但是,在有些场合NoSQL一些折衷是无法满足使用场景的...

开发猫 1万+

《Mycat核心技术》第06章:Mycat问题处理总结

介绍Mycat在使用过程中常见的问题,让大家少走弯路,在使用Mycat的过程中尽快规避这些问题。

冰河的专栏 734

MyCat批量insert的问题

目前在用MyCat做批量插入时,写数据失败,报错信息如下: The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 批量insert的实现方式: 修改前: insert into t...

熊孩子会撒野 4397

mycat报错:63529

摘要:MyCAT1.6.x版本在建表时出现语法错误(63529),主要因解析器不支持建表时直接定义普通索引(INDEX)。解决方案包括:1)使用极简建表语句(无INDEX定义);2)表创建后通过ALTER TABLE添加索引;3)直接在后端MySQL添加索引。建议优先使用ALTER TABLE方式,或考虑升级到MyCAT2。执行时需确保SQL纯净,创建成功后刷新表目录验证结果。该问题反映了MyCAT1.6对非核心语法支持较弱的特点。

weixin_66243333的博客 910

数据库分片--Mycat的简单使用

什么是数据库分片一、海量数据的存储问题随着互联网的发展,数据的量级也是指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升。但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝对要...

MrHuang 9197

mycat笔记

MyCAT就是:一个彻底开源的,面向企业应用开发的“大数据库集群”,支持事务、ACID、可以替代Mysql的加强版数据库,一个可以视为“Mysql”集群的企业级数据库,用来替代昂贵的Oracle集群的一个新颖的数据库中间件产品,简单地说,保存数据到数据库之前进行一些分散操作,减少对数据库的压力。 mycat可以解决:性能问题,数据库连接过多,E-R分片难处理,可用性问题,成本和伸缩性问题;而且mycat支持多种数据库,如mysql,oracle,SqlServer,mangoDb等等 MyCAT支持水平

weixin_45462385的博客 252

分库分表实践指南:MyCAT/DBLE核心注意事项与关键问题解决方案

在分库分表落地过程中,中间件选型与后续问题处理直接决定方案的稳定性。MyCAT与DBLE作为国内主流的分库分表中间件,在实际使用中存在诸多“避坑点”;同时,分库分表后衍生的分布式事务、全局主键冲突等问题,也需针对性解决。本文结合实践经验,系统梳理MyCAT/DBLE的使用限制,以及分库分表后的核心问题解决方案,助力开发者少走弯路。

专注Java和MySQL领域知识分享 1205
上一篇: 上传解析Excel
下一篇: Idea断点for循环调试
WindwardBird
博客等级 码龄7年 19粉丝 94原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值