摘要:1、MySQL适用的场景是什么? 数据量建议单实例T级或以内,不依赖存储过程、函数、触发器的传统oltp场景都适用,因为是一个相对轻量级的数据库 灾备使用MySQL各类的高可用方案即可,比如主从、mha、mgr等。 2、MySQL巡检应该怎么做?优先关注哪些参数? 可以从以下几个方面去做: 服务器配
阅读全文
摘要:记一次MySQL 5.7升级8.0的详细过程,聊聊我的思路,希望可以帮助大家。 以一个例子为切入点 一、升级背景 为什么要升级到MySQL8.0?大概多久进行一次? 大家可以参考下图记录的各个版本的发布时间,来确认各个版本的最终补丁日期: 从上图来看,当前处在官方支持生命周期的版本是MySQL 8.
阅读全文
摘要:前言 面试官:来说说,一千万的数据,你是怎么查询的? me:直接分页查询,使用limit分页。 面试官:有实操过吗? me:肯定有呀 此刻献上一首《凉凉》 也许有些人没遇过上千万数据量的表,也不清楚查询上千万数据量的时候会发生什么。 今天就来带大家实操一下,这次是基于MySQL 5.7.26做测试
阅读全文
摘要:根据某一条件从数据库表中查询 『有』与『没有』,只有两种状态,那为什么在写SQL的时候,还要SELECT count(*) 呢?无论是刚入道的程序员新星,还是精湛沙场多年的程序员老手,都是一如既往的count目前多数人的写法多次REVIEW代码时,发现如现现象:业务代码中,需要根据一个或多个条件,查
阅读全文
摘要:一、前言 最近经常碰到开发误删除误更新数据,这不,他们又给我找了个麻烦,我们来看下整个过程,把我坑得够惨。 二、过程 由于开发需要在生产环节中修复数据,需要执行120条SQL语句,需要将数据进行更新,于是开发连上了生产数据库,首先执行了第一条SQL update tablename set sour
阅读全文
摘要:有开发小哥咨询了一个问题,记录一下处理过程分享给有需要的朋友。问题如下:MySQL数据库中有几张表增删比较频繁、数据变动剧烈且数据量大,导致数据增长过快,磁盘占用多。为了节约成本,定期进行数据备份,并通过delete删除表记录,但是执行delete操作后发现磁盘空间并未释放,这是为什么?MySQL数
阅读全文
摘要:前言 在生产环境中,为了满足安全性,高可用性以及高并发等方面的需求,基本上采用的MySQL数据库架构都是MHA、MGR等,最低也得是一主一从的架构,搭配自动切换脚本,实现故障自动切换。上述架构都是通过集群主从复制(Master-Slave)的方式来同步数据。MySQL集群简单架构图: 说到主从同步,
阅读全文
摘要:0 问题描述 在MySQL中我们通常会采用limit来进行翻页查询,比如limit(0,10)表示列出第一页的10条数据,limit(10,10)表示列出第二页。但是,当limit遇到order by的时候,可能会出现翻到第二页的时候,竟然又出现了第一页的记录。具体如下: SELECT `post_
阅读全文
摘要:想和大家聊聊 InnoDB 中的锁机制,那么不可避免的要涉及到 MySQL 的日志系统,binlog、redo log、undo log 等,看到有小伙伴总结的这三个日志还不错,赶紧拿来和各位小伙伴分享。 日志是 mysql 数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysql日志主要
阅读全文
摘要:一套正常运行的系统是一个复杂的系统工程,牵涉到主机、操作系统、网络、数据库、中间件、底层存储,还有系统的核心:应用。任何层面的故障都可能造成系统的不可用。 今天聊一聊数据库层面的巡检问题。 数据库巡检的目的:保障数据库的正常运行,保证数据的安全性,完整性、可靠性。 这篇文章把我的这些个人的经验和想法
阅读全文
摘要:如果 10 万条数据进行批量更新该怎么操作呢?我们一起来看看具体可以怎么做。mysql 批量更新如果一条条去更新效率是相当的慢, 循环一条一条的更新记录,一条记录update一次,这样性能很差,也很容易造成阻塞。mysql 批量更新共有以下四种办法 1、.replace into 批量更新 repl
阅读全文
摘要:背景: 我们的一些业务测试系统,数据库一般也是由开发同事自行维护,所以不可避免会有一些问题,经常会有开发同事火急火燎的打电话给我们,如果语气急切,态度恭谨,一般就是误操作数据了(八九不离十)。 最近我们就遇到了一起误更新数据的事件。 由于update SQL编写问题,开发同事将整个表的一个字段进行了
阅读全文
摘要:先说大致的结论(完整结论在文末): 在语义相同,有索引的情况下:group by和distinct都能使用索引,效率相同。 在语义相同,无索引的情况下:distinct效率高于group by。原因是distinct 和 group by都会进行分组操作,但group by可能会进行排序,触发fil
阅读全文
摘要:前言 最近,有开发同事联系我反馈一个问题,说开发环境出现了数据丢失的情况,想让DBA帮忙排查一下是不是数据库的问题。我心想大概率是程序bug,不太可能是数据库的问题。不过还是要排查一下才会心安,毕竟对于一个DBA而言,数据丢失无疑是最令人紧张的一件事情。 问题排查 开始进行排查之前,我先确认了如下问
阅读全文
摘要:思考一个问题,联合索引在B+树中是怎么存储的? 比如在(a,b)字段上面创建联合索引,存储结构类似下面这样: 数据都是先按a字段排序,a字段的值相等时再按b字段排序。 a字段的值是全局有序的,b字段的值是全局无序的,只有在a字段的值相等时才呈现出局部有序。 下面做几道联合索引的经典面试题。 第一题:
阅读全文
摘要:一、背景 本文主要测试MySQL执行update语句时,针对与原数据(即未修改)相同的update语句会在MySQL内部重新执行吗? 二、测试环境 MySQL5.7.25 Centos 7.4 三、binlog_format为ROW 1、参数 2、测试步骤 session1 session2 ses
阅读全文
摘要:目录 谁在消耗cpu?祸首是谁? 用户 IO等待 产生影响 如何减少CPU消耗? 减少等待 减少计算 升级cpu 谁在消耗CPU? 用户+系统+IO等待+软硬中断+空闲 祸首是谁? 用户 用户空间CPU消耗,各种逻辑运算 正在进行大量tps函数/排序/类型转化/逻辑IO访问… 用户空间消耗大量cpu
阅读全文
摘要:毫不夸张的说咱们后端工程师,无论在哪家公司,呆在哪个团队,做哪个系统,遇到的第一个让人头疼的问题绝对是数据库性能问题。如果我们有一套成熟的方法论,能让大家快速、准确的去选择出合适的优化方案,我相信能够快速准备解决咱么日常遇到的80%甚至90%的性能问题。从解决问题的角度出发,我们得先了解到问题的原因
阅读全文
摘要:这是一条标准的查询语句: 这是我们实际上SQL执行顺序: from 子句组装来自不同数据源的数据; where 子句基于指定的条件对记录行进行筛选; group by 子句将数据划分为多个分组; 使用聚集函数进行计算; 使用 having 子句筛选分组; 计算所有的表达式; select 的字段;
阅读全文
摘要:前言: 数据库系统正式上线前,压测是必不可少的一步。数据库系统能承载多少并发,DBA要做到心中有数。 基本概念: TPS/QPS:衡量吞吐量。(TPS:每秒事务处理量(Transaction Per Second)、每秒查询率QPS(Query Per Second)是对一个特定的查询服务器在规定时
阅读全文