• 一次DB故障引起的反思和MySQL Operator选型

    前言在一次数据库故障后,我们发现业务库会根据业务的等级会划分多个 MySQL 实例,许多业务库会同时属于一个 MySQL 实例,当一个库引发问题后整个实例的状态是不可控的。从而导致这个实例上的所有业务不稳定甚至造成中断。故障反思微服务架构微服务架构在公司已经采用并坚持了近十年,我们也从传统的 VM 2025-01-14 08:16:15
  • mysql中exists 和 in的用法你还真不知道

    exists与in的查询方式In:是把外表和内表做Hash 连接,exists:是对外表作loop 循环,每次loop循环再对内表进行查询典型的连接类型共有3种:排序- 合并连接(Sort Merge Join (SMJ) ) 嵌套循环(Nested Loops (NL) ) 哈希连接(Hash J 2025-01-13 11:00:13
  • 如何实现用prometheus+grafana实时监控mysql数据库?

    概述Prometheus 服务本地已经启动了,接下来,需要安装并运行 Exporter,它的主要作用是持续输出监控的组件信息并格式化,同时提供 Http 接口供 Prometheus 服务来抓取。Exporter 也是通过 GO 语言编写的,Prometheus GitHub 已经为我们提供了很多实 2025-01-13 10:45:21
  • mysql join的用法? 说一说MySQL的7种join操作

    【死记硬背】MySQL的7种join操作分别是:内连接(inner join)、左连接(left join)、右连接(right join)、外连接(outer join)、左内连接(left join excluding inner join)、右内连接(right join excluding 2025-01-13 10:16:25
  • MYSQL批量更新数据的6种方法,你能想出第7种吗?

    我们都知道MYSQL中批量插入非常简单,那么批量更新呢?1.ININ 语句有比较大的局限性,更新后的结果必须一致。比如下面是将所有满足条件的行的状态(status)设置为1。如果想部分设置为1,部分设置为2等,则无法实现,或者通过写多条SQL语句实现。Update users Set status= 2025-01-13 09:46:14
  • MySql escape如何使用

    MySQL转义转义即表示转义字符原来的语义,一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现时的语义。在sql like语句中,比如select * from user where username like '%nihao%',select * fro 2025-01-13 09:16:17
  • MySQL中的redo log和undo log

    MySQL中的redo log和undo logMySQL日志系统中最重要的日志为 重做日志redo log 和 归档日志bin log ,后者为MySQL Server层的日志,前者为InnoDB存储引擎层的日志。1 重做日志redo log1.1 什么是redo logredo log用于保证事 2025-01-13 08:16:04
  • MySQL数据库实验--什么是垂直分割与水平分割?

    概述我们一般会对大数据量并且访问频繁的表,将其分为若干个表。如果不分的话,很有可能进行一次查询就会将表锁住,导致不能进行其他操作,这也是为什么分表的一个原因。表分割垂直分割应用场景:热数据放一个表里,冷数据放一个表里。冷数据使用MyIsam 可以更好的查询数据。活跃数据,使用Innodb ,可以有更 2025-01-12 11:00:04
  • Oracle与mysql架构、SQL解析区别

    01架构总览下面看一下mysql的架构图:mysql架构从上图中我们可以看到,整个架构分为两层,上层是MySQLD的被称为的‘SQL Layer’,下层是各种各样对上提供接口的存储引擎,被称为‘Storage Engine Layer’。其它各个模块和组件,从名字上就可以简单了解到它们的作用,这里就 2025-01-12 10:16:05
  • mysql中的date、datetime、timestamp你还不知道怎么使用吗

    在后端开发中经常会碰到涉及数据库的场景,不知道屏幕前的你有这样的疑惑没有,每每在遇到时间、日期字段总是让人头疼,分不清到底是选date还是datetime,亦或是timestamp,真是抓耳挠腮啊,怎么办呐,大都翻看之前的表结构,把之前的时间、日期类型抄过来,草草了事。以至于在后面的开发中总是为时间 2025-01-12 09:46:22