关系型数据库
文章平均质量分 89
关系型数据库
文晓武
专注搜索推荐问答推荐工程领域,涉及到的技术有:Java、ElasticSearch、SpringBoot、SpringCloud、Dubbo、Linux、Docker、Sql、Kafka、RabbitMQ、RocketMQ、MyBatis、XXl-Job、Zookeeper、Nginx、Redis、Tomcat、Git、SVN、Maven、K8S等,每周不定期更新精华文章!
展开
-
Mysql缓存池详细介绍
今天来聊一聊 Mysql 缓存池原理。提纲附上,话不多说,直接干货。面试官:同学,你能说说Mysql 缓存池吗?狂聊君:啊,这么难吗,容我组织一下语言。(内心OS:这TM还不简单?我能给你扯半小时!)面试官:可以,给你一分钟时间想一想吧。....一分钟后....狂聊君:我准备好了,你可听好,我要开始表演了。Mysql 的 innodb 存储引擎是基于磁盘存储的,并且是按照页的方式进行管理的。在数据库系统中,CPU 速度与磁盘速度之间的差距是非常大的,为了最大可能的弥补之间的差距,提出了缓存池的概念。所以缓存转载 2022-06-20 13:56:52 · 354 阅读 · 0 评论 -
说说MySQL与PostgreSQL之间的区别,该如何技术选型?
如果你稍微有一点工作经验,那么技术选型,技术比较就是面试中必问的知识点之一了。最近就有粉丝在面试中被问到了MySQL与PostgreSQL之间技术选型与比较的问题,下面是一些总结,希望能对大家有所帮助!如果打算为项目选择一款免费、开源的数据库,那么你可能会在MySQL与PostgreSQL之间犹豫不定。MySQL与PostgreSQL都是免费、开源、强大、且功能丰富的数据库。你主要的问题可能是:哪一个才是最好的开源数据库,MySQL还是PostgreSQL呢?该选择哪一个开源数据库呢?在选择数据库时,你所做转载 2022-06-17 11:30:28 · 412 阅读 · 0 评论 -
PostGIS空间数据库详细介绍
一、什么是空间数据库PostGIS是一个空间数据库,Oracle Spatial和SQL Server(2008和之后版本)也是空间数据库。但是这意味着什么?是什么使普通数据库变成空间数据库?简短的答案是...空间数据库像存储和操作数据库中其他任何对象一样去存储和操作空间对象。下面简短介绍了空间数据库的发展,然后回顾了将空间数据与数据库关联起来的三个要素:数据类型、索引和函数空间数据类型、空间索引和空间函数组合在一起,提供了灵活的结构用于空间数据库的性能优化和分析。1.1、开端在传统的第一代地理信息系统(G转载 2022-06-17 10:57:56 · 2254 阅读 · 0 评论 -
PostgreSQL快速入门
PostgreSQL是一个功能强大的开源对象关系数据库管理系统(ORDBMS)。 用于安全地存储数据; 支持最佳做法,并允许在处理请求时检索它们。PostgreSQL(也称为)由PostgreSQL全球开发集团(全球志愿者团队)开发。 它不受任何公司或其他私人实体控制。 它是开源的,其源代码是免费提供的。PostgreSQL是跨平台的,可以在许多操作系统上运行,如Linux,OS X和Microsoft Windows等。PostgreSQL是第一个实现多版本并发控制(MVCC)功能的数据库管理系统,甚至在转载 2022-06-17 09:46:40 · 3380 阅读 · 0 评论 -
Mysql高可用架构方案对比分析
一台机器A作为读写库,另一台B作为备份库;A库故障后B库作为读写库;A库恢复后A作为备库。此种情况下,数据源配置中的数据库IP地址,可采用虚拟的IP地址。虚拟IP地址由两台数据库机器上的keepalive配置,并互相检测心跳。当其中一台故障后,虚拟IP地址会自动漂移到另外一台正常的库上。数据库的主备配置、故障排除和数据补全,需要DBA和运维人员来维护。而程序代码或配置并不需要修改。具体配置可参考资料:http://lizhenliang.blog.51cto.com/7876557/1362313http:转载 2022-06-15 10:19:41 · 334 阅读 · 0 评论 -
分布式数据库中间件 MyCat入门与部署安装介绍
前面文章我们提到,如果数据量比较大的话,我们需要对数据进行分库分表,分完之后,原本存在一个数据库中的数据,现在就存在多个数据库中了,就像下面这样:那么此时 MyCat 所扮演的角色就是分布式数据库中间件!MyCat 是一个开源的分布式数据库中间件,它实现了 MySQL 协议,在开发者眼里,他就是一个数据库代理,我们甚至可以使用 MySQL 的客户端工具以及命令行来访问 MyCat 。MyCat 现在已经不仅仅只支持 MySQL 了,同时也支持 MSSQL、Oracle、DB2、以及 PostgreSQL等主转载 2022-06-15 10:14:09 · 373 阅读 · 1 评论 -
海量数据架构下如何保证Mycat的高可用?
操作系统:CentOS-6.8-x86_64JDK版本:jdk1.8HAProxy版本:haproxy-1.5.19.tar.gzMycat版本:Mycat-server-1.6 (自行下载源码编译)MySQL版本:mysql-5.7图解说明:HAProxy负责将请求分发到Mycat上,起到负载均衡的作用,同时HAProxy也能检测到Mycat是否存活,HAProxy只会将请求转发到存活的Mycat上。如果一台Mycat服务器宕机,HAPorxy转发请求时不会转发到宕机的Mycat上,所以Mycat依然可用转载 2022-06-15 10:11:33 · 140 阅读 · 0 评论 -
一文搞懂MySQL体系架构
很多小伙伴工作很长时间了,对于MySQL的掌握程度却仅仅停留在表面的CRUD,对于MySQL深层次的原理和技术知识了解的少之又少,随着工作年限的不断增长,职场竞争力却是不断降低的。很多时候,出去面试时,被面试官吊打的现象成了家常便饭。比如,对于MySQL的高频面试题有:说说MySQL中MVCC机制的原理?MySQL的事务原理和实现?MySQL数据主从复制的原理?MySQL底层数据的存储结构?如何使MySQL支持海量数据存储?MySQL中的锁机制原理和实现?MySQL索引机制?索引中涉及的数据结构和算法?My转载 2022-06-15 09:56:28 · 167 阅读 · 0 评论 -
MySQL数据库之互联网常用分库分表方案
一、数据库瓶颈不管是IO瓶颈,还是CPU瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载活跃连接数的阈值。在业务Service来看就是,可用数据库连接少甚至无连接可用。接下来就可以想象了吧(并发量、吞吐量、崩溃)。1、IO瓶颈第一种:磁盘读IO瓶颈,热点数据太多,数据库缓存放不下,每次查询时会产生大量的IO,降低查询速度 -> 分库和垂直分表。第二种:网络IO瓶颈,请求的数据太多,网络带宽不够 -> 分库。2、CPU瓶颈第一种:SQL问题,如SQL中转载 2022-05-28 16:34:53 · 83 阅读 · 0 评论 -
数据库范式之第三范式
第三范式(3NF)3NF在2NF的基础之上,消除了非主属性对于码的传递函数依赖。也就是说, 如果存在非主属性对于码的传递函数依赖,则不符合3NF的要求。第三范式和第二范式不同的地方在于,在第三范式里,所有的非键属性都必须和每个候选键有直接相关。例如对下表则不符合3NFStuNo Name Sex bounsLevel bouns 1308200047 Airing 男 优 2000 1308200048 Bob 男 良转载 2022-05-28 14:57:21 · 2896 阅读 · 0 评论 -
MySQL如何通过MVCC实现事务间多版本并发控制?
MVCC实现原理也是一道非常高频的面试题,自己在整理这篇文章的时候,感觉到网上的资料在讲这块知识点上写的五花八门,好像大家的理解并没有一致。这里将自己所理解的做一个总结,个人会觉得这是一篇含金量挺高的一篇文章(哈哈),「所以请你坚持认真的看下去」,一定会对你有收获。如果文章中哪里没有理解,或者认为我讲的不对的地方,都欢迎留言一起交流哈。「前言」一些基本概念我这里不在做阐述了。好比什么是事务? 事务的ACID? 四大隔离级别?有关事务并发存在的问题之前有写过一篇文章:一文详解脏读、不可..转载 2022-03-08 22:59:52 · 176 阅读 · 2 评论 -
MySQL经典100问
1、Innodb为什么要用自增id作为主键?如果表使用自增主键,那么每次插入新的记录,记录就会顺序添加到当前索引节点的后续位置,当一页写满,就会自动开辟一个新的页。如果使用非自增主键(如果身份证号或学号等),由于每次插入主键的值近似于随机,因此每次新纪录都要被插到现有索引页得中间某个位置, 频繁的移动、分页操作造成了大量的碎片,得到了不够紧凑的索引结构,后续不得不通过OPTIMIZE TABLE(optimize table)来重建表并优化填充页面。...原创 2022-03-08 20:23:08 · 25086 阅读 · 30 评论 -
MySQL是怎么保证数据不丢失的
先上结论:没有一个完美的方案,每次事务都刷盘,性能必定降低,批量事务再刷盘,必定增加丢数据风险,所以需要用户自行根据当前业务场景决定刷盘策略。binlog的写入机制事务执行过程中,先把日志写到 binlog cache,事务提交的时候,再把 binlog cache写到 binlog 文件中。系统给 binlog cache 分配了一片内存,每个线程一个,参数 binlog_cache_size 用于控制单个线程内 binlog cache 所占内存的大小。如果超过了这个参数规定的大小.转载 2022-03-08 19:43:04 · 254 阅读 · 0 评论 -
一文详解MySQL InnoDB脏读、不可重复读、幻读(通俗易懂)
在MySQL的众多存储引擎中,只有InnoDB支持事务,所有这里说的事务隔离级别指的是InnoDB下的事务隔离级别。MySQL 是支持多事务并发执行的。否则来一个事务处理一个请求,处理一个人请求的时候,其它事务都等着,那估计都没人敢用MySQL作为数据库,因为用户体验太差,估计都要砸键盘了。既然事务可以并发操作,这里就有一些问题:一个事务在写数据的时候,另一个事务要读这行数据,该怎么处理?一个事务在写数据,另一个数据也要写这行数据,又该怎么处理这个冲突?这就是并发事务所产生的一些问题。具体来.转载 2022-03-08 11:45:17 · 524 阅读 · 0 评论 -
MySQL数据库相关流程图原理图(深度好文)
前言整理了一些 MySQL 数据库相关流程图/原理图。做一下笔记,大家一起学习。1. MySQL 主从复制原理图MySQL主从复制原理是大厂后端的高频面试题,了解MySQL主从复制原理非常有必要。主从复制原理简言之,就三步曲,如下: 主数据库有个 bin-log 二进制文件,记录了所有增删改 SQL 语句(binlog线程); 从数据库把主数据库的 bin-log 文件的SQL语句复制过来(I/O线程); 从数据库的 relay-log 重做日志文件中再执...转载 2022-03-07 19:34:08 · 4729 阅读 · 0 评论 -
一文搞懂MySQL体系架构
写在前面很多小伙伴工作很长时间了,对于MySQL的掌握程度却仅仅停留在表面的CRUD,对于MySQL深层次的原理和技术知识了解的少之又少,随着工作年限的不断增长,职场竞争力却是不断降低的。很多时候,出去面试时,被面试官吊打的现象成了家常便饭。不仅仅是面试,如果你想从一名底层程序员上升为高级工程师、架构师等,MySQL的底层原理和技术是你必须要掌握的。今天一起来学习MySQL的体系架构。MySQL体系架构我们先来看看MySQL的体系架构图,如下所示。注:图片来自互联网从MySQ转载 2022-03-07 19:28:40 · 322 阅读 · 0 评论 -
57张图+13个实验,横扫MySQL锁的知识盲区
前言前段时间写了一篇关于 MySQL 锁的文章,一些小伙伴们在阅读之后产生了一些疑问,这些问题还挺有代表性的,所以在这里做个实验,来用事实探究一番。那篇文章提到了记录锁(Record Locks),顾名思义锁的是记录,作用在索引上的记录。锁是作用在索引上这句话可能不太好理解,并且对于在可重复读和读提交两个隔离级别下,关于是否命中二级索引的锁之间的阻塞也不太清晰。这句话读着可能有点拗口,没事,我来给你看几个实验,对这一切就异常清晰了。实验的 MySQL 版本为:5.7.26。实验一转载 2022-02-27 06:35:11 · 204 阅读 · 0 评论 -
MySQL 深度分页问题实际验证
一,前言首先说明一下MySQL的版本:表结构:id为自增主键,val为非唯一索引。灌入大量数据,共500万:我们知道,当limit offset rows中的offset很大时,会出现效率问题:为了达到相同的目的,我们一般会改写成如下语句:时间相差很明显。为什么会出现上面的结果?我们看一下select * from test where val=4 limit 300000,5;的查询过程:查询到索引叶子节点数据。根据叶子节点上的主键值去聚簇索引...转载 2022-02-26 16:28:48 · 187 阅读 · 0 评论 -
饿了么MySQL异地多活的数据双向复制经验谈(附PPT)
讲师介绍陈永庭,饿了么框架工具部高级架构师,主要负责MySQL异地双向数据复制,支撑饿了么异地多活项目。曾就职于WebEx、Cisco、腾讯等公司。今天我主要分享饿了么多活的底层数据实施,会和大家介绍在整个多活的设计和实施过程中我们是怎么处理异地数据同步的,而这个数据同步组件在我们公司内部称之为DRC。异地多活背景在讲DRC或者讲数据复制之前,先跟大家回顾一下异地多活的背景。去年我们在做多活调研的时候,整个公司所有的业务服务都是部署在北京机房,服务器大概有四千多台,灾备的机器是在云端转载 2022-02-26 16:17:28 · 920 阅读 · 0 评论 -
100G内存下,MySQL查询200G大表会OOM么?
我的主机内存只有100G,现在要全表扫描一个200G大表,会不会把DB主机的内存用光?逻辑备份时,可不就是做整库扫描吗?若这样就会把内存吃光,逻辑备份不是早就挂了?所以大表全表扫描,看起来应该没问题。这是为啥呢?全表扫描对server层的影响假设,我们现在要对一个200G的InnoDB表db1. t,执行一个全表扫描。当然,你要把扫描结果保存在客户端,会使用类似这样的命令: mysql -h$host -P$port -u$user -p$pwd -e "select*fro...转载 2022-02-26 14:27:14 · 132 阅读 · 0 评论 -
MySQL 中 count(*) 比 count(1) 快?
今天有人跟我讲 MySQL 中count(1)比count(*)快,这能忍?必须得和他掰扯掰扯。声明:以下讨论基于 InnoDB 存储引擎,MyISAM 因为情况特殊我在文末会单独说一下。先说结论:这两个性能差别不大。1.实践我准备了一张有 100W 条数据的表,表结构如下:CREATETABLE`user`(`id`int(11)unsignedNOTNULLAUTO_INCREMENT,`username`varchar(255)DEFAULT...转载 2022-02-26 14:04:50 · 146 阅读 · 0 评论 -
必须了解的MySQL三大日志:binlog、redo log和undo log
日志是mysql数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。作为开发,我们重点需要关注的是二进制日志(binlog)和事务日志(包括redo log和undo log),本文接下来会详细介绍这三种日志。binlogbinlog用于记录数据库执行的写入性操作(不包括查询)信息,以二进制的形式保存在磁盘中。binlog是mysql的逻辑日志,并且由Server层进行记录,使用任何存储引擎的mysql数据库都会记转载 2022-02-26 11:48:40 · 196 阅读 · 0 评论 -
深入理解MySQL执行过程及执行顺序
MySQL在我们的开发中基本每天都要面对的,作为开发中的数据的来源,MySQL承担者存储数据和读写数据的职责。因为学习和了解MySQL是至关重要的,那么当我们在客户端发起一个SQL到出现详细的查询数据,这其中究竟经历了什么样的过程?MySQL服务端是如何处理请求的,又是如何执行SQL语句的?本篇博客将来探讨这些问题。1. MySQL执行过程MySQL整体的执行过程如下图所示:连接器连接器的主要职责就是:1、负责与客户端的通信,是半双工模式,这就意味着某一固定时刻只能由客户端向服务器请转载 2022-02-26 11:23:17 · 202 阅读 · 0 评论 -
小心陷入 MySQL 索引的坑
索引可以说是数据库中的一个大心脏了,如果说一个数据库少了索引,那么数据库本身存在的意义就不大了,和普通的文件没什么两样。所以说一个好的索引对数据库系统尤其重要,今天来说说 MySQL 索引,从细节和实际业务的角度看看在 MySQL 中 B+ 树索引好处,以及我们在使用索引时需要注意的知识点。1. 合理利用索引在工作中,我们可能判断数据表中的一个字段是不是需要加索引的最直接办法就是:这个字段会不会经常出现在我们的 where 条件中。从宏观的角度来说,这样思考没有问题,但是从长远的角度来看,有时可转载 2022-02-26 11:13:43 · 189 阅读 · 0 评论 -
五分钟看懂 MySQL 编解码原理
前言一位读者在本地部署 MySQL 测试环境时碰到一个问题,我觉得挺有代表性的,所以写篇文章介绍一下。看完相信你会对 MySQL 的编码机制有最本质的了解,本文的目录结构如下: 读者问题简介 MySQL 编解码机制介绍 问题解答 读者问题简介为叙述方便,以下的「我」指代读者。我们知道在 Java 中是通过 JDBC 来访问数据库的,以访问 MySQL 为例,需要配置以下 URL 才能访问 MySQL。jdbc:mysql://10.65.110.9:3306.转载 2022-02-26 10:56:14 · 324 阅读 · 0 评论 -
各厂使用的MySQL开发详细规范
1. 数据库对象命名规范1.1 数据库对象数据库对象是数据库的组成部分,常见的有以下几种:表(Table )、索引(Index)、视图(View)、图表(Diagram)、缺省值(Default)、规则(Rule)、触发器(Trigger)、存储过程(Stored Procedure)、 用户(User)等。命名规范是指数据库对象如数据库(SCHEMA)、表(TABLE)、索引(INDEX)、约束(CONSTRAINTS)等的命名约定。1.2 数据库对象全局命名规范1、命名使用具有意义的英文转载 2022-02-25 18:12:04 · 67 阅读 · 0 评论 -
MySQL 中删除的数据都去哪儿了?
不知道大家有没有想过下面这件事?我们平时调用DELETE在 MySQL 中删除的数据都去哪儿了?这还用问吗?当然是被删除了啊那么这里又有个新的问题了,如果在 InnoDB 下,多事务并发的情况下,如果事务A删除了id=1的数据,同时事务B又去读取id=1的数据,如果这条数据真的被删除了,那 MVCC 拿啥数据返回给用户呢?没错,这就需要了解一下 MySQL 的多版本并发的原理相关的东西,感兴趣的可以去看我之前写的这篇文章。所以,实际情况中,调用了DELETE语句删...转载 2022-02-25 17:51:54 · 476 阅读 · 0 评论 -
MySQL 性能优化的 9 种姿势
大家好,我是二师兄!今天给大家分享一些简单好用的数据库优化方式!1、选择最合适的字段属性Mysql是一种关系型数据库,可以很好地支持大数据量的存储,但是一般来说,数据库中的表越小,在它上面执行的查询也就越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度舍得尽可能小。例如:在定义邮政编码这个字段时,如果将其设置为char(255),显然给数据库增加了不必要的空间,甚至使用varchar这种类型也是多余的,因为char(6)就可以很好地完成了任务。同样的如果可以的话,我们应转载 2022-02-25 17:26:42 · 118 阅读 · 0 评论 -
跑了4个实验,实战讲解 MySQL的行锁、间隙锁...
大家好今天跟大家聊一聊MySQL的事务隔离,并通过一些实验做了些总结。光说不练,假把式,没有经过实践就没有话语权。我们都知道数据库有四种隔离级别,分别是: 读未提交(READ UNCOMMITTED) 读已提交 (READ COMMITTED) 可重复读 (REPEATABLE READ) 串行化 (SERIALIZABLE) 实验前的准备工作1、基础环境 当前的数据库版本 mysql>selectversion();+----..转载 2022-02-25 17:02:35 · 488 阅读 · 0 评论 -
Innodb锁机制探究 - 间隙锁
Innodb中的锁算法 innodb中常用的锁算法一般有三种,分别是1、Record lock,行记录锁2、Gap Lock,间隙锁3、Next-key Lock,next key锁 其中Next key锁是Gap锁和Record锁的结合,他锁定的是一个范围,并且锁定记录本身。 也就是说,next key锁不是一个单独的锁,就我理解,它其实是一个概念,这个概念是由上面两个锁的概念组合而来的。记录锁很好理解,就是对某个记录的锁定,今天我们主要说说间隙锁。间隙锁简介...转载 2022-02-25 16:53:07 · 1400 阅读 · 0 评论 -
通俗易懂:MySQL InnoDB 是如何存数据的?(数据页存储结构详细介绍)
前言如果你使用过 MySQL 数据库,对它的存储引擎:InnoDB,一定不会感到陌生。众所周知,在MySQL5 以前,默认的存储引擎是:MyISAM。但MySQL5之后,默认的存储引擎已经变成了InnoDB,它是我们建表的首选存储引擎。那么,问题来了: InnoDB 底层是如何存储数据的? 表中有哪些隐藏列? 用户记录之间是如何关联起来的? 如果你想知道上面三个问题的答案,那么,请继续往下面看。本文主要包含如下内容:1. 磁盘 or 内存1....转载 2022-02-25 15:56:49 · 867 阅读 · 2 评论 -
《面试八股文》之 MySql 35卷,年后靠它了
35 个 Mysql 常见的小问题,moon 浓缩成了精华,祝大家卷的愉快~1.说一说三大范式 「第一范式」:数据库中的字段具有「原子性」,不可再分,并且是单一职责 「第二范式」:「建立在第一范式的基础上」,第二范式要求数据库表中的每个实例或行必须「可以被惟一地区分」。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主键 「第三范式」:「建立在第一,第二范式的基础上」,确保每列都和主键列直接相关,而不是间接相关不存在其他表的非主键信息 但是在转载 2022-02-25 10:46:33 · 101 阅读 · 0 评论 -
一文读懂MySQL权限系统
MySQL权限系统的主要功能是证实连接到一台给定主机的用户,并且赋予该用户在数据库上的SELECT、INSERT、UPDATE和DELETE权限。附加的功能包括有匿名的用户并对于MySQL特定的功能例如LOAD DATA INFILE进行授权及管理操作的能力。mysql赋权限操作:谈到mysql权限,在工作中第一个想到的就是给用户设置允许外部连接的权限,因为要使用类似navicat的图形化工具,更加方便更加简便快捷的操作数据库。操作也很简单以root用户为例,分三个步骤,分别是:1、设置mysq转载 2022-02-25 09:36:48 · 178 阅读 · 0 评论 -
Mysql 锁、索引、SQL调优、事务、主从同步、分库分表基础介绍
MyISAM 和 InnoDB 的区别?答案:InnoDB 支持 事务、外键、聚集索引,通过MVCC来支持高并发,索引和数据存储在一起。InnoDB 不保存表的具体行数,执行select count(*) from table时需要全表扫描。而MyISAM 用一个变量保存了整个表的行数。InnoDB 最小的锁粒度是行锁,MyISAM 最小的锁粒度是表锁,并发能力低。MySQL 将默认存储引擎是 InnoDBmysql 锁有哪些类型?答案:mysql锁分为共享锁( S lock ) 、..转载 2022-02-25 09:34:26 · 280 阅读 · 0 评论 -
上亿数据怎么玩深度分页?兼容MySQL + ES + MongoDB
面试题 & 真实经历面试题:在数据量很大的情况下,怎么实现深度分页?大家在面试时,或者准备面试中可能会遇到上述的问题,大多的回答基本上是分库分表建索引,这是一种很标准的正确回答,但现实总是很骨感,所以面试官一般会追问你一句,现在工期不足,人员不足,该怎么实现深度分页?这个时候没有实际经验的同学基本麻爪,So,请听我娓娓道来。惨痛的教训首先必须明确一点:深度分页可以做,但是深度随机跳页绝对需要禁止。上一张图:你们猜,我点一下第142360页,服务会不会爆炸?像M转载 2022-02-25 09:31:59 · 305 阅读 · 0 评论 -
讲一讲 MySQL 数据备份杀手锏 binlog
即使数据库真的被删了,也有备份数据,能快速恢复。甚至可以做到实时热备,即使内部炸掉外部用户也感知不到,一片风平浪静。MySQL 作为当下流行数据库,在数据备份、高可用方面非常有竞争力,今天,我们就重点来讲下什么是 MySQL 主备情况一: 客户端的业务操作,读、写访问的是主库 主库通过某种机制,将数据实时同步给备库 主库由于有些原因,无法正常响应客户端的请求 情况二: 完成主备切换 客户端读写,访问的是备库(此时备库升级为新主库) 那么,转载 2022-02-24 20:35:53 · 338 阅读 · 0 评论 -
分享一些MySQL常用函数
今天给大家分享MySQL的一些常用函数。1、数学函数ABS(x) --返回x的绝对值BIN(x) --返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x) --返回大于x的最小整数值EXP(x) --返回值e(自然对数的底)的x次方FLOOR(x) --返回小于x的最大整数值GREATEST(x1,x2,...,xn) --返回集合中最大的值LEAST(x1,x2,...,x转载 2022-02-24 20:17:24 · 118 阅读 · 0 评论 -
MySQL Explain 命令使用详解
MySQLexplain命令是查询性能优化不可缺少的一部分,该文主要讲解 explain 命令的使用及相关参数说明。explain 命令基本使用在日常工作中,我们会有时会开慢查询去记录一些执行时间比较久的 SQL 语句,找出这些 SQL 语句并不意味着完事了。此时我们常常用到 explain 这个命令来查看一个这些 SQL 语句的执行计划,查看该 SQL 语句有没有使用上了索引,有没有做全表扫描。mysql>explainselect*fromservers;+---...转载 2022-02-24 20:08:14 · 323 阅读 · 0 评论 -
MySQL 亿级数据分页的优化
背景下班后愉快的坐在在回家的地铁上,心里想着周末的生活怎么安排。突然电话响了起来,一看是我们的一个开发同学,顿时紧张了起来,本周的版本已经发布过了,这时候打电话一般来说是线上出问题了。果然,沟通的情况是线上的一个查询数据的接口被疯狂的失去理智般的调用,这个操作直接导致线上的MySql集群被拖慢了。好吧,这问题算是严重了,下了地铁匆匆赶到家,开电脑,跟同事把Pinpoint上的慢查询日志捞出来。看到一个很奇怪的查询,如下POST domain/v1.0/module/method?or转载 2022-02-24 19:47:27 · 548 阅读 · 0 评论 -
MySql 一棵 B+ 树到底能存多少条数据呢?
mysql 的InnoDB存储引擎 一棵B+树可以存放多少行数据?要搞清楚这个问题,首先要从InnoDB索引数据结构、数据组织方式说起。我们都知道计算机有五大组成部分:控制器,运算器,存储器,输入设备,输出设备。其中很重要的,也跟今天这个题目有关系的是存储器。我们知道万事万物都有自己的单元体系,若干个小单体组成一个个大的个体。就像拼乐高一样,可以自由组合。所以说,如果能熟悉最小单元,就意味着我们抓住了事物的本事,再复杂的问题也会迎刃而解。存储单元存储器范围比较大,但是数据具体怎么.转载 2022-02-24 19:32:25 · 454 阅读 · 0 评论