mysql
文章平均质量分 91
养歌
任何傻瓜都能写出计算机可以理解的代码,好的程序员能写出人能读懂的代码。
展开
-
实现 MySQL 主从复制配置
主从复制主要操作是让一台服务器 Master 的数据和其他服务器 Slave 保持同步。一台 Master 数据可以同步到多台备库 Slave 上,同时一台 Slave 本身也可以配置另外一台服务器的 Master,Master 库和 Slave 库可以有多种不同的组合。在企业实际的开发中,后端 MySQL 数据库只有一台的时候,会有以下问题:主从复制流程图:执行流程说明:192.168.2.125 和 192.168.2.126 安装 MySQL 的步骤都是一样的,以安装在 192.168.2.原创 2022-07-06 14:32:10 · 2536 阅读 · 2 评论 -
如何快速的 drop 掉一个超过 100G 的大表?
这篇文章主要介绍怎么实现快速删除一个超过 的大表,正常的我们都会执行命令 来删除表。但是会有一个问题,就是执行 命令之后,删除没有反应,一直卡顿在哪里。于是强制结束了执行并且选择 drop() 进行删除,但执行 命令后,发现花了更久的时间,命令还是没返回执行成功,这到底是怎么回事呢?出现这个情况的原因就是因为,在的时候, 维护了一个全局独占锁(在 上面),直到 完成才释放。 会严重的消耗服务器 性能,如果被 的表容量较大,甚至会影响到线上的正常。造成长时间的业务无法访问数据库,更严重,导致数据库崩原创 2022-06-14 11:50:49 · 3106 阅读 · 1 评论 -
单个索引和组合索引(联合索引)谁效率高
首先我们创建第一张表为组合索引,如下所示:第二种表为单列索引,如下所示:创建完表之后我们开始原创 2022-01-26 09:56:13 · 17108 阅读 · 5 评论 -
MySQL之事务设计
事务的作用?讲解事务之前先来看一个例子,以转账为例:小明现在有10000块钱,小红向小明借1000块,小明给小红转了1000块,现在问题是小红没有收到钱,但是小明扣了1000块,剩余9000块,那问题出现在哪里呢?有以下两种情况:小明给小红转账的过程中报错,小明的钱扣完以后到执行把钱给小红加上的过程中出现了异常,导致小红没有执行成功。小明给小红转账的过程中,小明扣成功,到执行小红加钱的时候服务宕机了,导致小红没有执行成功。要解决这个问题,就要保证转账过程中所有数据库的操作要么全部执行成功 ,原创 2021-12-07 10:56:52 · 1444 阅读 · 0 评论 -
分库分表解决方案
前言因为每个学校学生用餐人数太多,一天订单20万量增长,而且学校使用也在不停的增多,公司最近在搞分库分表,数据分离到不同的库中或表中, 所以这段时间了解过数据库的分库分表,也读过很多大神写的博文,基本上知道个大概,也在实际的应用中掌握分库分表的技术下面总结一下从以下几个方面说起:1、服务和数据库的演化过程3、分库分表有哪几种方式。4、分库分表有哪些问题5、目前市面有的一些开源产品,技术,它们的优缺点是什么(只说ShardingJdbc和MyCat)6、ShardingJdbc代码实现分库分表原创 2021-10-29 12:36:36 · 13294 阅读 · 1 评论 -
一次有趣的SQL优化
场景我用的数据库是mysql5.7,下面简单的介绍下场景课程表:create table Course(c_id int PRIMARY KEY,name varchar(10))数据100条学生表:create table Student(id int PRIMARY KEY,name varchar(10))数据70000条学生成绩表SC:CREATE table...原创 2019-04-22 13:49:15 · 633 阅读 · 0 评论 -
一文搞懂MySQL索引数据结构
前言当我们在查询数据慢的情况下第一个想到的会是添加索引,索引在数据库的实际应用场景中十分常见,数据库的优化也离不开对索引的优化。而且索引相关的知识也是面试频率非常高的点之一,因此,本文将从基础理论出发,介绍MySQL按照逻辑角度的索引分类和实现。通过索引数据结构的实现原理阐述不同结构对建立索引带来的优劣势,希望通过这篇文章能给大家带来收获。SQL执行慢的原因分析磁盘空间不足、内存不足、I/O吞吐量小或者网络差等原因。表没有创建索引或者索引已经失效。分库分表也会带来SQL慢的原因服务器调优及各.原创 2021-11-30 11:10:11 · 5348 阅读 · 0 评论 -
陷阱之MySql中ORDER BY和LIMIT混合使用
今天线上项目测试人员反馈按照年级查询不到个别班级下的学生数据,后来把查询的SQL拿下来测试了一下,按照分页方式一页页跳转发现确实少了很多数据,这是什么原因导致的呢,SQL如下:首先第一想法就是我按照排序以后获取数据全部数据的顺序应该是如下图所示的:如果我按照limit0,10分页的话我应该获取的是前10条数据,如下图所示:但是结果确是和预期的不一致,如下图所示:那这是怎么一回事呢?我们实现查询数据量大时往往需要分页来实现,而且需要显示最新的数据在前面,MySql中我们常常使用 order b原创 2021-11-12 18:30:44 · 2729 阅读 · 0 评论 -
面试必备SQL调优方案
前言以我个人做的项目为例,因为早期开发项目上线以后用户量还不是很大,之前考虑过数据量大时是否做sql优化,但是一直因为项目还在开发中没来得及细心的调优下SQL,由于业务前期数据量比较小,基本都能满足要求,但是随着数据的订单量增长,数据量也随之增加,这时候从线上看查询sql的时间变长了,有的可能几百毫秒才能查询出来,用户体验性就变差了,这时候就需要对SQL进行优化。下面就我所遇到的以及该怎样调优总结一下,希望对于小伙伴们有所帮助。首先从以下几个方面对SQL进行调优:1、sql语法优化2、数据库表结构原创 2021-11-04 15:29:32 · 4141 阅读 · 0 评论 -
聊聊MySQL里面的undo Log、redo Log和bin Log日志的原子性和持久性已经复制和恢复数据实现过程
最近闲来无事自己突发奇想的想看一下MySQL的存储引擎,看了事务相关的ACID,想了解MySQL是怎么实现数据的持久性和数据的一致性,自己上网看了一下MySQL里边出现的几种常见的log,根据自己的了解写了这篇文章与大家分享,不足之处还望指出。MySQL中比较常见的几种log为:1、bin Log2、undo Log3、redo Log当然面试当中MySQL中也是必问的题目,MySQL是开发当中用的比较的多的数据库,也是整个系统中最重要的一部分,相关底层问题也是比较多问。直接开门见山吧1、什么原创 2021-10-29 17:20:44 · 640 阅读 · 0 评论