• 基于 Flink 实现解决数据库分库分表任务拆分

    1、场景描述例如订单库进行了分库分表,其实例如下图所示:现在的需求是希望创建一个任务就将数据同步到MQ集群,而不是为每一个数据库实例单独创建一个任务,将其数据导入到MQ集群,因为同步任务除了库不同之外,表的结构、数据映射规则都是一致的。 2、flinkx 的解决方案详解 2.1 fink Stream API 开发基本流程使用 Flink Stream API 编程的通用步骤...

    MySQL 2020年11月17日 1704 0
  • 一个架构师的缓存修炼之路

    一位七牛的资深架构师曾经说过这样一句话:“Nginx+业务逻辑层+数据库+缓存层+消息队列,这种模型几乎能适配绝大部分的业务场景。这么多年过去了,这句话或深或浅地影响了我的技术选择,以至于后来我花了很多时间去重点学习缓存相关的技术。我在10年前开始使用缓存,从本地缓存、到分布式缓存、再到多级缓存,踩过很多坑。下面我结合自己使用缓存的历程,谈谈我对缓存的认识。01 本地缓存1. ...

    Redis 2020年11月14日 1522 0
  • 性能测试 | Jmeter对数据库mysql压测就是这么简单

    一、测试计划-----添加JDBC驱动链接这里我用的mysql数据库是8.5版本,那么我相对应的JDBC驱动选择了8.0.11版本,JDBC驱动可以在mys ql的官网下载,具体地址是:https://dev.mysql.com/downloadsdownload下载后解压文件夹,把文件夹中的mysql-connector-java-8.0.11.jarb copy到jmete...

    MySQL 2020年11月14日 1869 0
  • 新特性解读 | MySQL 8.0.22 任意格式数据导入

    上一章讲了数据库基本上都用 B+ 树来存储索引的原因:适合磁盘存储,能够充分利用多叉平衡树的特性,磁盘预读,并且很好的支持等值,范围,顺序扫描等。这篇主要介绍 MySQL 两种常用引擎,MyISAM 和 InnoDB 的索引组织方式,了解这些存储方式,对数据库优化很有帮助。MySQL 的索引按照存储方式分为两类:聚集索引:也称 Clustered Index。是指关系表记录的物...

    MySQL 2020年11月12日 1596 0
  • uni-app漂亮UI框架分享-兼容头条/微信等小程序

    uView UI入选了gitee的GVP项目(Gitee码云最有价值的开源项目),是uni-app生态优秀的UI框架,提供了很全面的UI组件和模板,为开发各类跨平台的H5 App以及各种小程序都十分方便。app development什么是uni-appuni-app 是一个使用 Vue.js 开发跨平台H5应用的前端框架,开发者编写一套前端代码,便可以通过其开发工具HBuil...

    Oracle 2020年11月03日 3174 0
  • 基于 Flink SQL CDC的实时数据同步方案

    Flink 1.11 引入了 Flink SQL CDC,CDC 能给我们数据和业务间能带来什么变化?本文由 Apache Flink PMC,阿里巴巴技术专家伍翀 (云邪)分享,内容将从传统的数据同步方案,基于 Flink CDC 同步的解决方案以及更多的应用场景和 CDC 未来开发规划等方面进行介绍和演示。传统数据同步方案基于 Flink SQL CDC 的数据同步方案(D...

    MySQL 2020年11月03日 21307 0
  • MySQL 8.0.22 新特性

    MGR 具备了 RPO=0 的高可用容灾能力,但并不适合跨 WAN 场景下使用,像有两地三中心容灾需求的场景,单纯靠 MGR 是无法满足的,必须要拉上异步复制。同城双中心距离在百十公里内,网络延迟可接受,要求 RPO=0,那么部署一组 MGR;异地容灾中心距离在上百公里,网络延迟较大,接受 RPO>0,通过异步复制,部署单节点或对称部署一组 MGR。在两地三中心架构下,如...

    MySQL 2020年11月03日 2359 0
  • 因为一次redis缓存穿透,全面探究redis能做什么

    问题背景:网关支付,支付之前需要根据商户去获取支持的银行列表,银行列表是商家首次在我们系统里申请开户的时候配置进去的,第一次获取列表是通过调远程接口查询数据库获取的,获取成功后,结果保存在redis缓存中,有效期设置6小时,以后每次查询都直接访问redis缓存即可。出现问题是有一批新商户没有配置银行列表,发起支付获取银行列表时,首次调用接口获取结果失败,没有放置缓存;商户反复提...

    Redis 2020年10月12日 1489 0
  • 最完整的Explain总结,妈妈再也不担心我的SQL优化了

    在 select 语句之前增加 explain 关键字,MySQL 会在查询上设置一个标记,执行查询时,会返回执行计划的信息,而不是执行这条SQL(如果 from 中包含子查询,仍会执行该子查询,将结果放入临时表中)CREATE TABLE `film` (  `id` int(11) NOT NU...

    MySQL 2020年08月27日 1577 0
  • mysql数据库优化方案之分库分表,轻松解决亿级数据问题

    今天介绍下sharding-sphere,主要介绍他的特性,分库分表的技术的详解。(一)下载源码官网地址获取源码https://shardingsphere.apache.org/index_zh.html下载源码因为git的包名比较长,git有可以创建4096长度的文件名,然而在windows最多是260,因为git用了旧版本的windows api,为此踩了个坑。从gith...

    MySQL 2020年08月07日 2065 0
  • Redis到底该怎么搞呢?主从复制以及redis复制演进全面进攻

    一、前言通过持久化功能,Redis保证了即使在服务器宕机情况下数据的丢失非常少。但是如果这台服务器出现了硬盘故障、系统崩溃等等,不仅仅是数据丢失,很可能对业务造成灾难性打击。为了避免单点故障通常的做法是将数据复制多个副本保存在不同的服务器上,这样即使有其中一台服务器出现故障,其他服务器依然可以继续提供服务。当然Redis提供了多种高可用方案包括:主从复制、哨兵模式的主从复制、以...

    Redis 2020年08月06日 1550 0
  • 烹饪MySQL8.0 Cluster这道菜

    此文将带领大家接触MySQL8.0版本,并且部署Mysql Cluster。香。香。香。一:写在前面--MySQL8.0的改进1:性能:MySQL 8.0 的速度要比 MySQL 5.7 快 2 倍。MySQL 8.0 在以下方面带来了更好的性能:读/写工作负载、IO 密集型工作负载、以及高竞争("hot spot"热点竞争问题)工作负载。MySQL8.0、MySQL5.7、M...

    MySQL 2020年06月12日 2931 0
  • Redis 到底是怎么实现“附近的人”这个功能的呢?

    Redis 到底是怎么实现“附近的人”这个功能的呢?前言:针对“附近的人”这一位置服务领域的应用场景,常见的可使用PG、MySQL和MongoDB等多种DB的空间索引进行实现。而Redis另辟蹊径,结合其有序队列zset以及geohash编码,实现了空间搜索功能,且拥有极高的运行效率。本文将从源码角度对其算法原理进行解析,并推算查询时间复杂度。要提供完整的“附近的人”服务,最基...

    Redis 2020年05月12日 1593 0
  • 一款能快速批量处理SQL文本的软件:NimbleText

    前言做为一个后台程序员,在日常工作中,经常会遇到领导扔给一个Excel,让把 Excel 的数据导入数据库的情况。如果只是少量数据,几条甚至说几十条,还可以勉强地组织一下 insert 插入语句;但大多数情况下,都是成百上千行的数据,若要是再手动一条一条组织 insert 插入语句,岂不得累死。于是乎,为了减少重复工作,提高工作效率,小编找到了一款能快速批量处理SQL文本的软件...

    MySQL 2020年05月08日 2834 0
  • 6步带你看懂MySQL 整体架构

    MySQL 在整体架构上分为 Server 层和存储引擎层。其中 Server 层,包括连接器、查询缓存、分析器、优化器、执行器等,存储过程、触发器、视图和内置函数都在这层实现。数据引擎层负责数据的存储和提取,如 InnoDB、MyISAM、Memory 等引擎。在客户端连接到 Server 层后,Server 会调用数据引擎提供的接口,进行数据的变更。连接器负责和客户端建立连...

    MySQL 2020年05月05日 1628 0
  • 借助Redis完成延时任务

    相信我们或多或少的会遇到类似下面这样的需求:第三方给了一批数据给我们处理,我们处理好之后就通知他们处理结果。大概就是下面这个图说的。本来在处理完数据之后,我们就会马上把处理结果返回给对方,但是对方要求我们处理速度不能过快,要有一种人为处理的效果。换句话就是说,就算是处理好了,也要晚一点再执行通知操作。这就是一个典型的延时任务。延时,那还不简单,执行完之后,让它Sleep一下就好...

    Redis 2020年05月04日 1690 0
  • Redis 6.0 正式版终于发布了!除了多线程还有什么新功能?

    Redis 6.0.1 于 2020 年 5 月 2 日正式发布了,如 Redis 作者 antirez 所说,这是迄今为止最“企业”化的版本,也是有史以来改动最大的一个 Redis 版本,同时也是参与开发人数最多的一个版本。所以在使用此版本之前,建议各位开发者先进行深入的测试再考虑投产,毕竟生产坏境无小事。好了,回到本文的重点,接下来我们来重点看下 Redis 6.0.1 给...

    Redis 2020年05月03日 1826 0
  • MySQL用户及权限知识梳理

    一、账号用户账号MySQL用户账号组成: 'USER'@'HOST'USER: 用户名。HOST: 来源主机地址,IP、主机名、通配符(%和_)。创建用户账号:mysql> CREATE USER 'USER'@'HOST';mysql> CREATE USER 'USER'@'HOST' IDENTIFIED BY 'PWD';用户重命名:mysql> RE...

    MySQL 2020年04月26日 2128 0
  • 为什么MongoDB使用B-Tree,Mysql使用B+Tree ?

    除了 B+ 树,你可能还听说过 B 树、 B- 树,实际上, B- 树就是 B 树,英文翻译都是 B-Tree ,这里的 “-” 并不是相对 B+ 树中的 “+” ,而只是一个连接符。而 B 树实际上是低级版的B+ 树,或者说 B+ 树是 B 树的改进版。B+ treeB+ tree 实际上是一颗m叉平衡查找树(不是二叉树)平衡查找树定义:树中任意一个节点的左右子树的高度相差不...

    MySQL 2020年04月26日 1718 0
  • mysql数据库如何进行备份和恢复

    一、确保mysql开启了binlog日志功能在/etc/my.cnf文件里的[mysqld]区块添加:#这个是存储的位置为mysql配置文件的位置log-bin=mysql-bin然后重启mysql服务生效二、创建数据库先创建一个ops数据库create database ops;use ops;创建一个customers表并写上表结构create table customer...

    MySQL 2020年04月26日 1664 0
  • MySQL的binlog知识梳理

    1、binlog概念:binlog是一个二进制格式的文件,用于记录“修改数据或可能引起数据变更”的SQL语句(查询的SQL不会记录)。2、binlog功能:(1)恢复: 利用binlog日志恢复数据库数据。(2)复制: 主从架构通过binlog同步数据。(3)审计: 可以用binlog中的信息进行审计,判断是否有对数据库进行注入攻击。3、binlog的记录格式:(1)state...

    MySQL 2020年04月25日 1505 0
  • 分库、分表、分区的区别

    一.分分合合说过很多次,不要拘泥于某一个技术的一点,技术是相通的。重要的是编程思想,思想是最重要的。当数据量大的时候,需要具有分的思想去细化粒度。当数据量太碎片的时候,需要具有合的思想来粗化粒度。1.1 分很多技术都运用了分的编程思想,这里来举几个例子,这些都是分的思想集中式服务发展到分布式服务从Collections.synchronizedMap(x)到1.7Concurr...

    MySQL 2020年04月22日 1555 0
  • MySQL性能优化必知:长连接、短连接、连接池

    当数据库服务器和客户端位于不同的主机时,就需要建立网络连接来进行通信。客户端必须使用数据库连接来发送命令和接收应答、数据。通过提供给客户端数据库的驱动指定连接字符串后,客户端就可以和数据库建立连接了。可以查阅程序语言手册来获知通过何种方式使用短连接、长连接。1. 短连接短连接是指程序和数据库通信时需要建立连接,执行操作后,连接关闭。短连接简单来说就是每一次操作数据库,都要打开和...

    MySQL 2020年04月21日 1720 0
  • Redis从入门到精通,至少要看看这篇

    常用的 SQL 数据库的数据都是存在磁盘中的,虽然在数据库底层也做了对应的缓存来减少数据库的 IO 压力。图片来自 Pexels由于数据库的缓存一般是针对查询的内容,而且粒度也比较小,一般只有表中的数据没有发生变动的时候,数据库的缓存才会产生作用。但这并不能减少业务逻辑对数据库的增删改操作的 IO 压力,因此缓存技术应运而生,该技术实现了对热点数据的高速缓存,可以大大缓解后端数...

    Redis 2020年04月20日 1398 0
  • mysql读写分离原理及配置

    1 复制概述 Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送...

    MySQL 2020年04月20日 1943 0
  • MySQL大表优化方案——从单表优化到分表分库

    单表优化除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑、部署、运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的。而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量:字段尽量使用TINYINT、SMALLINT、MEDIUM_INT作为整数类型而非INT,如果非负则加上U...

    MySQL 2020年04月19日 4221 0
  • Sprinig Boot + Redis 实现接口幂等性,写得太好了

    一、概念幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次 比如:订单接口, 不能多次创建订单支付接口, 重复支付同一笔订单只能扣一次钱支付宝回调接口, 可能会多次回调, 必须处理重复回调普通表单提交接口, 因为网络超时等原因多次点击提交, 只能成功一次 等等二、常见解决方案唯一索引 -- 防止新增脏数据token机制 -- 防止页面重复提交悲观锁...

    Redis 2020年04月19日 1556 0
  • 了解数据库类型及MySQL数据库常用命令行

    一、数据库1、数据库DataBase(DB):存储数据的仓库。2、数据库的分类(1) 关系型数据库(sql数据库):中型:mysql(端口号3306)、sql server大型:Oracle(端口号1521)(2) 非关系型数据库(no-sql数据库)MongoDB、Redis3、mysql软件:Sql yog:数据库客户端工具(图形用户界面工具)方便操作数据库。类似的工具:N...

    MySQL 2020年04月19日 1331 0
  • 很用心的为你写了 9 道 MySQL 面试题

    MySQL 一直是本人很薄弱的部分,后面会多输出 MySQL 的文章贡献给大家,毕竟 MySQL 涉及到数据存储、锁、磁盘寻道、分页等操作系统概念,而且互联网对 MySQL 的注重程度是不言而喻的,后面要加紧对 MySQL 的研究。写的如果不好,还请大家见谅。非关系型数据库和关系型数据库区别,优势比较非关系型数据库(感觉翻译不是很准确)称为 NoSQL,也就是 Not Only...

    MySQL 2020年04月18日 1299 0
  • 一份完整的 MySQL 开发规范,进大厂必看

    一、数据库命令规范1、所有数据库对象名称必须使用小写字母并用下划线分割2、所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来)3、数据库对象的命名要能做到见名识意,并且最后不要超过32个字符4、临时库表必须以tmp_为前缀并以日期为后缀,备份表必须以bak_为前缀并以日期(时间戳)为后缀5、所有存储相同数据的列名和列类型必须一致(...

    MySQL 2020年04月18日 1373 0