
Mysql/Mycat
文章平均质量分 64
MySQL数据库相关与MyCat分库分表解决方案
boonya
资深Java,热衷大数据,Python爬虫,持续探索副业中,有需要的可以加我微信联系:boonya221
展开
-
Mysql 批量插入事务唯一键重复处理
在资源组挂靠新的资源时,由于roleId和resGroupId 是组合唯一键,所以在外部事务提交有记录的时候,当前事务提交会存在重复记录。利用 ON DUPLICATE KEY UPDATE解决。原创 2022-07-22 17:21:20 · 909 阅读 · 1 评论 -
Mysql INNODB和MyIsAM实现全文检索
目录SQL整个流程参考文章全文搜索引擎实现数据库级别的一直没有测试,今天有空试了一把做下记录。SQL整个流程-- *****************************MySQL 从 5.7.6 版本开始,MySQL就内置了ngram全文解析器,用来支持中文、日文、韩文分词*********************-- 参考地址:https://www.cnblogs.com/jstarseven/p/13558612.html-- 当前数据库版本号select versio原创 2021-07-29 17:38:38 · 482 阅读 · 0 评论 -
Mysql线上数据修复注意事项
在业务上我们比较看重的是数据的一致性,事务管理这块ACID特性能够帮助我们得到安全性保证。为了使我们的SQL更改变得整体有效,所以我们引入事务来执行每次数据修复。示例:BEGIN;UPDATE `lwj_sales`.`t_contract_order` set contractCancelStatus='NULL'where contractNum in ( 'HX0CNQ292105187CP','HX0ILW312105702CP');DELETE oa from `lwj_sal原创 2021-07-02 14:28:33 · 218 阅读 · 0 评论 -
Flyway数据库版本控制与数据迁移工具
官网地址: https://flywaydb.org/Flyway是一个开源数据库迁移工具。与配置相比,它极力主张简单性和约定性。它仅基于7个基本命令:迁移,清理,信息,验证,撤消,基线和修复。可以使用SQL(支持特定于数据库的语法(例如PL / SQL,T-SQL等))或Java(用于高级数据转换或处理LOB)编写迁移。它具有一个命令行客户端。如果您使用的是JVM,建议您在应用程序启动时使用Java API(也适用于Android)迁移数据库。或者,您也可以使用Maven...原创 2021-05-26 22:10:35 · 1980 阅读 · 0 评论 -
Mysql数据库锁相关使用说明
目录悲观锁共享锁排他锁乐观锁乐观锁的实现行锁表锁mysql有乐观锁、悲观锁、共享锁、排它锁、行锁、表锁等概念。悲观锁共享锁sql语句:select.... lock in share mode;select * from usr_tb where id = 1 lock in share mode;我们观察开启事务而不提交:执行update操作:更新语句会被阻塞直到Lock等待超时。共享锁多个资源持有同一把锁的权限。行锁就是对唯一行记录加锁,原创 2021-05-25 23:51:08 · 300 阅读 · 0 评论 -
Mycat与Mysql高可用架构设计
keepalived: 虚拟IP工具,可以虚拟一个200的地址对外访问。haproxy:高可用代理服务,可代理TCP、HTTP。Mycat :数据库分库分表插件。原创 2020-06-02 22:15:21 · 453 阅读 · 0 评论 -
MySQL5.5.45+ 5.6.26+ 5.7.6+关闭SSL验证
SSL大多数使用者都是关闭状态, 所以如果不想接收数据库警告WARN信息建议禁用SSL。目录查看是否启用修改配置重启服务查看一下SSL配置说明查看是否启用$ mysql -u root -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL ...原创 2019-10-15 13:15:48 · 3129 阅读 · 0 评论 -
Docker快速实现MySQL主从复制环境搭建
Docker配置原理跟通常的master-salve配置一样,使用Docker可快速实现主从复制的环境搭建。目录1.更新系统并安装docker2.服务器开启端口访问3.运行Master和Slave实例4.进入容器修改主从配置4.1容器进入操作4.2Master配置4.3Slave配置5.主从关联5.1获取容器实例的IP5.2mysql-master操作...原创 2019-04-19 16:35:37 · 565 阅读 · 0 评论 -
Docker实现Canal MySQL增量日志订阅&消费环境搭建
https://github.com/alibaba/canalCanal:阿里巴巴mysql数据库binlog的增量订阅&消费组件 。阿里云DRDS( https://www.aliyun.com/product/drds )、阿里巴巴TDDL 二级索引、小表复制powerd by canal. Aliyun Data Lake Analytics https://www.aliy...原创 2019-04-19 18:56:27 · 5612 阅读 · 4 评论 -
Mysql通过binlog日志文件恢复数据
mysqlbinlog 官方操作文档:https://dev.mysql.com/doc/refman/5.6/en/mysqlbinlog.htmlwindows和linux下操作请找到mysqlbinlog可执行命令所在位置 。数据库需要开启log_bin功能并设置开启binlog行级模式(ROW):操作选项:Option Name Description I...原创 2019-06-17 16:37:05 · 3280 阅读 · 1 评论 -
Canal+Otter实现Mysql数据库数据记录增量备份实践
通过之前对Canal的了解,我们知道Canal实际上只做了日志级别的读取和操作事件的捕获,对于如何将获取到的增量日志保存到目标数据库去,这里单纯地通过Canal来做就需要做很多后续解析的工作,好在阿里都给出了解决方案,那就只Otter。Otter就是来帮助我们让源数据库的数据通过binlog再次写入到目标数据库。目录必须弄清楚的两个问题Canal帮我们做了什么?我们将用Otter来...原创 2019-04-28 00:07:56 · 4215 阅读 · 1 评论 -
MySQL表简化周期性统计递归树结构的保存过程
递归树结构的保存如果按照行来处理,如果是历史数据完全可以封装好JSON数据作为一条记录保存而无需保存成数据结构。对于这类数据需要考虑数据库记录条数,JSON封装格式和极简方式都是在不需要重新构造树结构的基础上实现的,避免了多行记录问题。目录数据结构方式表汇总轨迹统计年历史表(XH_GJTJ_YEAR_TB)轨迹统计月历史表(XH_GJTJ_MONTH_TB轨迹统计周历史表(...原创 2019-04-12 17:53:38 · 667 阅读 · 0 评论 -
Linux 安装mysql-5.7.25验证迁移数据目录
目录Mysql安装下载安装包解压安装包创建数据文件存放目录创建系统用户组和用户修改当前目录权限配置/etc/my.cnf修改/etc/profile环境变量初始化数据库添加开机启动mysql指令操作安装后续操作获取临时密码跳过用户权限mysql命令不可用更改root密码创建用户并开启远程访问迁移MYSQL数据目录修改/et...原创 2019-04-01 17:16:32 · 1237 阅读 · 0 评论 -
MySQL分库分表方案
目录一、Mysql分库分表方案1.为什么要分表:2. mysql proxy:amoeba3.大数据量并且访问频繁的表,将其分为若干个表4. 利用merge存储引擎来实现分表二、数据库架构1、简单的MySQL主从复制:2、MySQL垂直分区3、MySQL水平分片(Sharding)①单库单表 ②单库多表 ③多库多表四、分库分表规则 1. ...转载 2019-01-26 23:29:16 · 1583 阅读 · 0 评论 -
MySQL性能优化之参数配置
原文地址:https://www.cnblogs.com/angryprogrammer/p/6667741.html1、目的:通过根据服务器目前状况,修改Mysql的系统参数,达到合理利用服务器现有资源,最大合理的提高MySQL性能。 2、服务器参数:32G内存、4个CPU,每个CPU 8核。3、MySQL目前安装状况。 MySQL目前安装,用的是MySQL默认...转载 2018-12-07 10:04:16 · 467 阅读 · 0 评论 -
MySQL 指定数据库部分表备份—跨网络备份解决方案
MySQL数据备份真的很强大,为之叹服!MySQL深入研究还是很有必要的,找了一堆数据同步的工具比如Canal+Otter还有Kettle,没想到如此之简单就搞定了!特别注意:所有从库节点需要设置为read_only=1使除了超级用户之外的用户不能修改从库数据以保证主从之间同步信息对等主从机制不会被破坏。原标题是包含关键字主-从(主)-从。目录功能需求MySQL主从指定数据库指定...原创 2019-04-30 18:33:50 · 2356 阅读 · 0 评论 -
MySQL单主库多从库继承数据备份方案—扩宽无限可能
内容请参考:MySQL 指定数据库部分表备份—跨网络备份解决方案 理论上:MySQL可以实现主备、互为主备 、主-从(主)-从(主)-从(主)....一直到千秋万代。特别注意:所有从库节点需要设置为read_only=1使除了超级用户之外的用户不能修改从库数据以保证主从之间同步信息对等主从机制不会被破坏。文档下载地址:https://download.youkuaiyun.com/downl...原创 2019-05-07 12:10:55 · 439 阅读 · 0 评论 -
MySQL mysqldump 命令备份和还原数据注意事项说明
在基于增量备份服务出错的情况下需要做全库备份,此时用mysqldump或直接根据binlog日志文件恢复(日志文件恢复需要知道同步的位置)。注意事项需要注意以下三点:备份前需要通过“show master status;”命令查看position节点并记录下来,最好命名到备份的.sql文件名上。 主库和备库编码格式统一为utf8,所以备份和还原时都需要加“--default-char...原创 2019-06-20 09:16:54 · 982 阅读 · 0 评论 -
MySQL存储过程与组件管理
此文会更新下去,逐步完善敬请期待。目录存储过程存储过程基础与原理存储过程实例与方法调用存储过程组件管理字段的新增和修改索引的新增和修改视图创建或修改删除表和视图存储过程存储过程基础与原理待续....存储过程实例与方法调用待续....存储过程组件管理字段的新增和修改/* * 安全创建表字段的存储过程: * 首先判断字段是否存...原创 2019-07-09 11:28:20 · 843 阅读 · 0 评论 -
MySQL InnoDB索引原理及使用注意事项
本文转自阿里云栖:https://yq.aliyun.com/articles/692067目录聚集索引(clustered index)B+树(多路平衡查找树)辅助索引覆盖索引注意事项聚集索引(clustered index)innodb存储引擎表是索引组织表,表中数据按照主键顺序存放。其聚集索引就是按照每张表的主键顺序构造一颗B+树,其叶子结点中存放的就是整张表...转载 2019-07-13 16:12:22 · 752 阅读 · 0 评论 -
MySQL索引原理与实践管理
此文会更新下去,逐步完善敬请期待。索引优化数据查询是最快速有效的方式,可以通过EXPLAIN 解析查询语句是否使用索引查询过滤数据 type=ALL 表示全表查询,type=range表示走索引范围查询。目录索引数据库索引原理数据库索引的分类数据库索引管理创建索引重建索引查询索引删除索引索引数据库索引原理待续....数据库索引的分类待续......原创 2019-07-13 16:47:43 · 374 阅读 · 0 评论 -
Mysql与Postgresql的区别及优势说明
最近有用到Postgresql,它与MySQL还是有一定的区别的,如果要看一首资料对比,请访问:https://en.wikibooks.org/wiki/Converting_MySQL_to_PostgreSQL目录背景数据类型MySQL与Postgresql各自优势PostgreSQL相对于MySQL的优势MySQL相对于PG的优势参考资料背景在去年的DB...原创 2019-09-06 11:14:15 · 1125 阅读 · 0 评论 -
Linux Ubuntu 快速实现Mycat分片管理
首先我们先准备好一个主-从(Master-Slave)Mysql配置节点(数据库用户和密码保持一致,请参考:http://blog.youkuaiyun.com/boonya/article/details/72842251),然后就可以准备Mycat的事情了。原创 2017-06-02 18:44:50 · 1012 阅读 · 0 评论 -
Shell执行MySQL脚本错误:Operation CREATE USER failed for 'user'@'%'
在Docker里面安装的MySQL5.7,在编写Shell脚本执行时遇如题之BUG。解决问题:drop user 'user'@'%' ;flush privileges;create user 'user'@'%' identified by '123456';可执行MySQLShell 脚本示例:#!/bin/bash#file:docker_mysql_crea...原创 2018-11-07 10:30:38 · 11856 阅读 · 0 评论 -
Shell 实现Docker MySQL5.7安装及SQL脚本运行
Linux Shell 实现Docker MySQL安装及脚本运行的目标:1、实现MySQL5.7安装2、安装完成后创建对应的账号和数据库实例表等创建docker mysql容器实例定义docker_mysql_install.sh#! /bin/bash#file:mysql_docker_install.sh#company:cvnavi.com#author:Pe...原创 2018-10-11 13:49:15 · 3909 阅读 · 0 评论 -
Mycat 开发调试环境配置-开启二次开发之路
Mycat是 数据库分库分表中间件。mycat1.6分库分表特性只能选择其一,不能同时存在,对于特殊应用场景既需要分库有需要分表,这就需要修改mycat的源码来实现了。今次我们来准备一下Mycat的开发调试环境。官网参考地址:http://www.mycat.io/原创 2017-07-19 13:32:03 · 10593 阅读 · 2 评论 -
Mysql全局变量查询及设置
SET GLOBAL max_allowed_packet=53687091200;原创 2017-06-13 17:34:28 · 17731 阅读 · 0 评论 -
Linux Ubuntu MySql5.6主从配置及问题解决
虚拟机装的是MySql5.6,复制实例后出现 Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work错误 ;要解决此问题网上很多说的是修改/data/atuo.cnf文件重置server-uuid,不过笔者找了半天都没找到此文件(find -name auto.c原创 2017-06-02 11:11:07 · 1563 阅读 · 0 评论 -
Mycat批量插入性能测试
本文采用mycat的values批量插入方式进行测试,连写的数据量达到8000左右事务提交可以达到每秒75000左右数据量,也证实了Mycat的效率是小于或等于Mysql的性能。在实际生产中,因为访问量和并发问题使得效率下降,这也是数据库底层IO无法避免的困境,所以实际生产中多采用主备-读写分离的方式进行分片处理,可以多设置几个Mycat的主备节点。本文采用的是一主一备,单个Mycat节点的读写分离之Mysql InnoDB的测试。原创 2017-06-06 12:22:55 · 18830 阅读 · 0 评论 -
Mycat-server监控服务Mycat-web
Mycat-web 是对mycat-server提供监控服务。功能不局限于对mycat-server使用。他基于jmx对所有JVM监控。通过JDBC连接对Mycat、Mysql监控。基于snmp协议,监控远程服务器(目前仅限于linux系统)的cpu、内存、网络、磁盘。GitHub源码:https://github.com/boonyachengdu/Mycat-Web支持SQL上线,基于sqlwatch开源项目,具备SQL语法检查和备份数据识别,释放DBA精力。原创 2017-06-05 20:44:48 · 4754 阅读 · 0 评论 -
Mybatis与JDBC批量插入MySQL数据库性能测试及解决方案
系统中需要批量生成单据数据到数据库表,所以采用批量插入数据库的方式。由于系统中ORM操作集成使用的是Mybatis来完成的。在实际生产中发现,使用Mybatis批量插入调用的效率并不高,于是我们迫切地需要寻找一种处理批量插入性能较高的方式——回归原生数据库JDBC操作。我们要分析Mybatis和JDBC的插入性能,来决策适合我们生产系统的批量插入方式。经过以上测试得出结论:Mybatis的批量适合处理少了数据的批量处理,而JDBC适合大数据量的批量处理。据此,采用JDBC批量+事务处理大数据量的表插入操作是原创 2017-04-13 14:37:38 · 20704 阅读 · 3 评论 -
Mysql数据库并发插入死锁问题及处理方式
Mysql有很多坑,对Mysql多线程支持这块不是很熟的话就会莫名其妙地发生一些诡异的问题。多线程线程并发操作时最容易产生死锁问题。所以很多大数据的操作一般都采用NoSQL数据库方案来处理,或者读写分离,只需要做好幂等设计即可。原创 2017-03-22 15:47:57 · 34262 阅读 · 0 评论 -
Mysql实现监控数据统计分析:Druid开源分布式系统与阿里巴巴的Druid数据库连接池
看到Druid很多国内的开发者所熟知的就是阿里巴巴提供的开源数据库连接池工具。如果看了这篇文章还认为Druid仅仅是一个阿里巴巴提供的开源数据库连接池工具那么就错了,它或许指的是用于大数据实时处理的开源分布式系统Druid。Durid有个统一的本质都是分析监控数据,这是本篇文章的关注点。原创 2017-03-24 16:17:30 · 6439 阅读 · 1 评论 -
MySql分支项目MariaDB 之开眼看世界
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB(英语:XtraDB)来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius(英语:Michael Widenius)主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的原创 2017-03-06 21:37:57 · 1625 阅读 · 0 评论 -
淘宝内部分享:MySQL & MariaDB性能优化
MySQL是目前使用比较多的开源数据库,但是MySQL数据库的默认设置性能非常的差,必须进行不断的优化,而优化是一个复杂的任务,本文描述淘宝数据库团队针对MySQL数据库Metadata Lock子系统的优化,hash_scan 算法的实现解析的性能优化,TokuDB·版本优化,以及MariaDB·的性能优化。本文来自淘宝团队内部经验分享。转载 2017-03-06 21:25:44 · 3721 阅读 · 0 评论 -
Mycat对MongoDB分表后Navicat访问测试问题
采用Mycat数据库中间件做MongoDB的单库分表后,通过Navicat去连Mycat操作,通过SQL语句查询可以轻松获取数据结果集,但是直接点击表名查询报错。推测可能有两种情况:(1)Navicat对MongoDB文档型的数据展示支持不好;(2)Mycat本身对客户端的响应适配输出未做处理。经过调试发现应该是Mycat的问题,主要是Mycat的MongoDBParser类解析的时候只支持SQLSelectStatement类型的,而不支持SHOW CREATE TABLE(对应的声明式语句类型是MySq原创 2017-07-21 17:52:10 · 3548 阅读 · 0 评论 -
Mycat源码修改分表规则的CRUD操作测试与改进
因为目前Mycat 1.6尚不支持既分库又分表的模式,所以需要对源码进行改造,目前实现单库分表的多种分表策略,包括:默认分表、按日期分表、取摸分表,三种规则。经过这几天对源码的改造,这里做一组分表规则的CRUD测试,记录于此。文章包括实现过程的两大部分的记录,即“全部支持子表路由操作”和“全部支持主表条件路由操作”,支持“全部支持主表条件路由操作”才是最终需求目标,因为对外部而言不知道去访问哪张子表。因此,需要每个外部操作Mycat的SQL语句都带上条件,这个条件可以是INSERT的列,也可以是SELECT原创 2017-07-26 17:49:21 · 2564 阅读 · 0 评论 -
MySQL 5.7.22 社区版下载安装及开启允许远端连接访问
绿色版https://dev.mysql.com/downloads/mysql/5.7.html#downloads安装版https://dev.mysql.com/downloads/windows/installer/5.7.html操作方法安装注意事项:Installer:请选择自定义安装Custom,安装对应版本的MySQL 5.7.22 Server...原创 2018-07-21 11:20:39 · 1169 阅读 · 0 评论 -
Mycat catlet跨库JOIN与全局JOIN
基于catlet的分库JOIN为数据库表按类型分库提供了很好的支持,而全局表在每个节点都有DDL实现也可以实现直接JOIN操作。当表设置为全局表后可以与任意一个表进行JOIN操作。Mysql分库这里我们将基础和业务分别放在不同的数据库分片上,创建m和n数据库实例名。m基础配置数据库:包含t_usern业务数据数据库:包含t_servicem&n数据库建表语句:t_user/*Navicat My原创 2017-06-14 10:38:00 · 12061 阅读 · 2 评论 -
Mycat中Buffer机制分析—HeapByteBuffer与DirectByteBuffer
ByteBuffer一般在网络交互过程中java使用得比较多,尤其是以NIO的框架中,分为两类:HeapByteBuffer:内存是分配在堆上的,直接由Java虚拟机负责垃圾收集,你可以把它想象成一个字节数组的包装类;DirectByteBuffer:是通过JNI在Java虚拟机外的内存中分配了一块(java堆内存由Xmx控制,而堆外内存由-XX:MaxDirectMemorySize控制),该内存块并不直接由Java虚拟机负责垃圾收集,但是在DirectByteBuffer包装类被回收时,会通过Java转载 2017-09-19 16:45:20 · 2818 阅读 · 0 评论