• 什么是MySQL主从复制读写分离,看这篇就够了

    思维导图前言在很多项目,特别是互联网项目,在使用MySQL时都会采用主从复制、读写分离的架构。为什么要采用主从复制读写分离的架构?如何实现?有什么缺点?让我们带着这些问题开始这段学习之旅吧!为什么使用主从复制、读写分离主从复制、读写分离一般是一起使用的。目的很简单,就是为了提高数据库的并发性能。你想,假设是单机,读写都在一台MySQL上面完成,性能肯定不高。如果有三台MySQL...

    MySQL 2021年01月05日 1201 0
  • 什么是聚集索引,非聚集索引,索引覆盖,回表,索引下推

    聚集索引我们先建如下的一张表CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '学号', `name` varchar(10) NOT NULL COMMENT '学生姓名', `age` int(11) NOT NULL COMMENT '学生年龄', PRIMARY K...

    MySQL 2021年01月05日 1884 0
  • MySQL的日志 - relay log

    前言relay log的作用如何开启relay log验证relay log开启的效果relay log日志相关参数relay log日志的清除最后前言前面介绍了MySQL的binlog日志相关的知识点,接下里这篇文章中,我们来看一下relaylog的相关内容。relay-log是记录什么的?MySQL用它做什么?relay log的作用Relay log,我们翻译成中文,一般...

    MySQL 2021年01月05日 2196 0
  • MySQL为Null会导致5个问题,个个致命

    在正式开始之前,我们先来看下 MySQL 服务器的配置和版本号信息,如下图所示: “兵马未动粮草先行”,看完了相关的配置之后,我们先来创建一张测试表和一些测试数据。-- 如果存在 person 表先删除 DROP TABLE IF EXISTS person;  -- 创建 p...

    MySQL 2021年01月01日 1115 0
  • 线上SQL死锁分析及解决思路

    背景最近线上消费MetaQ的服务频繁报SQL死锁异常,虽然最终可以基于事务自动回滚和逻辑重试保证最终正确性,但若一直放任不管,海量报警日志会掩盖真正需要紧急处理的异常,同时频繁回滚也会降低消费端的吞吐量,个人通过分析线上服务日志、Mysql死锁日志、梳理Mysql在RR级别下的锁机制,找到了真正的问题所在,并对业务处理逻辑进行了优化,特在此整理出来,一方面大家可以互相学习提升,...

    MySQL 2020年12月31日 1707 0
  • MySQL中的排序

    在编写SQL 语句时常常会用到 order by 进行排序,那么排序过程是什么样的?为什么有些排序执行比较快,有些排序执行很慢?又该如何去优化?索引排序索引排序指的是在通过索引查询时就完成了排序,从而不需要再单独进行排序,效率高。索引排序是通过联合索引实现的。因为联合索引是从最左边的列开始起按大小顺序进行排序,如下图。比如现在查询条件是 where sex=1 order by...

    MySQL 2020年12月31日 1207 0
  • MySQL中varchar类型字段最大长度是多少

    背景字节和字符的区分为什么是varchar(255)而不是(256)varchar字段最大值是多少latin1字符集编码下utf8字符集编码下utf8mb4字符集编码下总结背景你是否知道MySQL中的varchar字段类型最大能够存储多少数据?它的最大长度是多少?为什么有时候定义一个varchar(10)的字段可以存储10个汉字,但是不能存储超过10个长度的字母呢?为什么有时候...

    MySQL 2020年12月30日 1230 0
  • MySQL底层的存储结构

    文章目录:写在前面的话InnoDB的存储结构Tablespace常见的表空间SegmentExtentPage什么是off-pageInnoDB的文件存储格式写在前面的话你有没有想过这样一个问题:我们的数据在MySQL中是如何存放的?它是以什么样的组织方式存放在我们磁盘中的?我们知道,数据是存放在表里面的,在表里面是一行一行存在的。那么这一行一行的数据怎么样在磁盘中存放的呢?表...

    MySQL 2020年12月29日 1126 0
  • 为什么 MongoDB 选择B树,Mysql 选择B+树?

    本文献给准备面试或者是还在面试的你。常见面试题,送分题目,不拿白不拿。一、B树和B+树的区别很明显,我们想向弄清楚原因就要知道B树和B+树的区别。为了不长篇大论。我们直接给出他们的形式总结他们的特点。1、B树B树是一种自平衡的搜索树,形式很简单:这就是一颗B-树。针对我们这个问题的最核心的特点如下:(1)多路,非二叉树(2)每个节点既保存索引,又保存数据(3)搜索时相当于二分查...

    MySQL 2020年12月26日 1162 0
  • Easy Rules 配置文件外置-Mysql

    场景前一篇,介绍了Easy Rules作为Java一款轻量级的规则引擎,使得研发更加注重于纯业务开发,提高开发效率。这一篇,主要是围绕,规则配置数据,外置于数据库Mysql的实现。思路1、Mysql存储新建表t_biz_rule、t_biz_rule_compose分别存储规则定义、规则组合定义2、构建RulesMysql中的Rule、RuleCompose转换成RuleDef...

    MySQL 2020年12月26日 1741 0
  • MySQL分组查询后如何获取每组的前N条数据,你会吗?

    “分组查询”可以说是相当常见的SQL查询语句,对于MySQL数据库而言,其实现分组查询的关键字为GROUP BY,而在使用GROUP BY期间一般还会有其他的聚合函数配合使用,比如计数用的COUNT(*),统计数值和用的SUM(*),而本文要介绍的是另一种类型的“分组查询”,即分组查询出来后再查询出每一组的前N条数据。 为了方便诸位理解,还是直接举一个实际的案例吧:存在两个数据...

    MySQL 2020年12月26日 1788 0
  • 安装MySQL后,需要调整的10个性能配置项

    本文翻译自 Percona 官方博客,适用于 MySQL 5.6 及 5.7 版本。作者:Stephane Combaudon原文:https://www.percona.com/blog/2014/01/28/10-mysql-performance-tuning-settings-after-installation/在本博客中,我们将和大家讨论下 MySQL 数据库安装后...

    MySQL 2020年12月25日 1023 0
  • 腾讯开源分布式存储系统Tendis,可完全兼容Redis

    近日,腾讯宣布开源一个与 Redis 协议完全兼容的高性能分布式存储系统 Tendis。据悉,Tendis 是腾讯互娱 CROS DBA 团队 & 腾讯云数据库团队自主设计和研发的分布式高性能 KV 存储数据库,兼容 Redis 核心数据结构与接口,可提供大容量、低成本、强持久化的数据库能力,适用于兼容 Redis 协议、需要大容量且较高访问性能的温冷数据存储场景。Te...

    Redis 2020年12月24日 1798 0
  • 数据库干货:整理SQLServer非常实用的脚本

    今天给大家分享自己在工作当中用到的SQLServer一些常用的脚本,希望能对大家有所帮助!1、 查询数据库所有表结构通过该脚本可以快速查找表字段,或者生成数据库设计文档、进行数据库对比。SELECT obj.name 表名, col.colorder AS 序号 , col.name AS 列名 , ISNULL(ep.[value], '') AS 列说明 , t.name ...

    SQL SERVER 2020年12月17日 1597 0
  • Mysql数据库实现主从同步,看这一篇就够了

    环境介绍: CentOS 7.5 Mysql 5.7.29 Mysql主服务器:192.168.2.128 Mysql从服务器:192.168.2.129Mysql主从同步原理: 当master服务器上的数据发生改变时(增、删、改),则将其改变写入二进制binlog日志中;slave服务器会在一定时间间隔内对master二进制日志进行探测其是否发生改变,如果发生改变,则开启一个...

    MySQL 2020年12月16日 1375 0
  • 如何在mysql 造1亿条记录的大容量数据表?

    背景及目标:现有数据1000w单表,为压力测试准备1亿条数据。步骤:1.将1000w条记录,除id外都导入到多个文件中://DELIMITER DROP PROCEDURE if EXISTS createManyTable; create PROCEDURE createManyTable() BEGIN DECLARE i int; DECLARE fileName VAR...

    MySQL 2020年12月14日 1306 0
  • 写出好的Join语句,前提你得懂这些

    前言最近在读《MySQL性能调优与架构设计》,看到一个关于join的优化原则,如下:大白话解释下:因为驱动结果集越大,意味着需要循环的次数越多,也就是说在被驱动结果集上面所 需要执行的查询检索次数会越多。比如,当两个表(表 A 和 表 B) Join 的时候,如果表 A 通过 WHERE 条件过滤后有 10 条记录,而表 B 有 20 条记录。如果我们选择表 A 作为驱动表,也...

    MySQL 2020年12月14日 1749 0
  • 简单列一下分布式高并发要做的事情

    数据库以MySQL为例。慢查询日志,索引优化(explain),覆盖索引。数据库一主多从或者双主多从。读写分离。然后对表进行垂直划分,例如一张字段很多的宽表转为子母表。水平划分,根据业务特性,对表进行分区(现在应该很少用),分表,甚至分库。数据该归档的归档,日表变月表,年表,或者变地域表等。使用sharding-jdbc等。甚至可以给数据库硬盘换上SSD。数据量再大,就该考虑大...

    MySQL 2020年12月12日 1306 0
  • Redis缓存机制与应用

    Redis是目前最为主流的缓存技术之一,Redis基于内存操作从而拥有强大的性能,可以达到每秒10万次的请求,可以说是一款非常强大的缓存技术了。本文分为三部分:基础知识介绍常用技术讲解与缓存机制使用场景、缓存问题基础知识介绍NoSQL概述什么是NoSQL?NoSQL = Not Only SQL (不仅仅是SQL)关系型数据库:表格 ,行 ,列 非关系型数据库:没有固定的查询语...

    Redis 2020年12月11日 14108 0
  • Redis持久化问题定位与优化技巧

    今天主要分享继Redis持久化方式RDB、AOF之后的一些常用的Redis问题定位于优化方式。这里主要CPU、内存、磁盘在三个维度去分析问题! Fork操作当Redis做RDB或AOF重写时,一个必不可少的操作就是执行fork操作创建子进程,对于大多数操作系统来说fork是个重量级操作虽然fork创建的子进程不需要拷贝父进程的物理内存空间,但是会复制父进程的空间内存页表。例如对...

    Redis 2020年12月08日 1409 0
  • Redis两种持久化机制RDB和AOF详解(面试常问,工作常用)

    redis是一个内存数据库,数据保存在内存中,但是我们都知道内存的数据变化是很快的,也容易发生丢失。幸好Redis还为我们提供了持久化的机制,分别是RDB(Redis DataBase)和AOF(Append Only File)。在这里假设你已经了解了redis的基础语法,某字母网站都有很好的教程,可以去看。基本使用的文章就不写了,都是一些常用的命令。下面针对这两种方式来介绍...

    Redis 2020年12月07日 1364 0
  • 深入理解Mysql数据存储

    前言本文内容Mysql 数据文件说明Mysql 数据逻辑存储架构Mysql 表空间,主要是系统表空间和独立表空间Mysql 数据类型时区对 datetime 和 timestamp 影响,java 中 LocalDatetime 保存时,时间和预期不符的原因分析和解决办法varchar(n) 和 char(n) 保存时,n 能取多少,n 的含义。一行数据中 varchar 能存...

    MySQL 2020年12月06日 1200 0
  • MySQL模式开发设计规范问题与建议

    1.时间类型的数据默认值是否可以为null?根据反馈,时间类型的数据默认值往往在业务上无法赋予一个确定的值,而”1970-01-01“、”0000-01-01“等等的默认值在开发过程中会增加判断工作,经过新版MYSQL(版本号8.0.19)测试,为null的数据可以走索引,故开放时间类型的数据默认值的限制。* 补充不建议为Null的技术观点:老版本MYSQL在对null值的判断...

    MySQL 2020年12月04日 1535 0
  • 一万字详解 Redis Cluster Gossip 协议

    大家好,我是历小冰,今天来讲一下 Reids Cluster 的 Gossip 协议和集群操作,文章的思维导图如下所示。集群模式和 Gossip 简介对于数据存储领域,当数据量或者请求流量大到一定程度后,就必然会引入分布式。比如 Redis,虽然其单机性能十分优秀,但是因为下列原因时,也不得不引入集群。单机无法保证高可用,需要引入多实例来提供高可用性单机能够提供高达 8W 左右...

    Redis 2020年12月04日 1493 0
  • 带你扒一扒 MySQL 的数据在我们磁盘上到底长什么样子

    前言在之前《大师,我悟了:为什么 MySQL 索引要用 B+tree ,而且还这么快?》一文中我从索引的各种数据结构和大家聊到了 MySQL 底层索引的数据结构 B+tree 和工作原理。里面多处提到了找数据是在我们电脑的磁盘上找,今天就来说一说 MySQL 中的数据在磁盘上,它到底是如何进行存储的?存储引擎MySQL 中的数据用各种不同的技术存储在文件(或者内存)中,这些不同...

    MySQL 2020年12月03日 1351 0
  • 偶遇MySQL 的JSON字段内容检索,灵活存储也需有度

    前言最近公司在做一项用户数据调查,需要统计某个值得使用频率,由于之前这个值是以一个JSON字符串形式存储的,所以不能直接用传统的方式匹配,幸亏现在数据库才做了升级版本到了5.7以后(支持JSON查询),要是放在以前,只有模糊匹配了。分析查看涉及到的字段是一个JSON对象数组类型,匹配的条件是用到对象的某一个字段,自然而然的想到了JSON_CONTAINS 函数来解决。selec...

    MySQL 2020年12月01日 1397 0
  • MySQL数据实时增量同步到Elasticsearch

    Mysql到Elasticsearch的数据同步,一般用ETL来实现,但性能并不理想,目前大部分的ETL是定时查询Mysql数据库有没有新增数据或者修改数据,如果数据量小影响不大,但如果几百万上千万的数据量性能就明显的下降很多,本文是使用Go实现的go-mysql-transfer中间件来实时监控Mysql的Binlog日志,然后同步到Elasticsearch,从实时性、性能...

    MySQL 2020年11月23日 2387 0
  • mysql垂直分库,水平分库,垂直分表,水平分表

    之前经常被问道这些分库分表的概念,只是大概知道,但是具体如何定义的,问什么这么定义还是不太理解,今天对着数据表中的数据沉思的时候,突然间醒悟,原来这些概念非常好理解,而且可以说水平和垂直这两个词用得恰到好处,非常形象地帮助我们理解它们。水平分表顾名思义,水平分表就是把表中的数据进行了水平切割,意味着按照行进行切割,也就是说不同行的数据被切割后可能在不同的表中。如图所示,根据水平...

    MySQL 2020年11月18日 1222 0
  • Redis学习知识点

    1.Redis的应用场景? 1.Token令牌的生成 2.短信验证码的code 3.可以实现缓存查询数据 a. 减轻我们的数据库的访问压力 Redis与mysql数据库不同步的问题 4.Redis帮助实现计数器 5.分布式锁 6.延迟操作 分布式消息中间件 注意:Redis官方是没有windows版本的,只有linux,这是因为 在nio中epoll只有linux操...

    Redis 2020年11月17日 1378 0
  • SpringBoot2.x集成MongoDB,强化版CRUD

    前言MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。什么是NoSQL?NoSQL,指的是非关系型的数据库。NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL用于超大规模数据的存储。(例如谷歌或Facebook每天为他们的用户收集万亿比特...

    MongoDB 2020年11月17日 2142 0