
mysql
Louis.No1
这个作者很懒,什么都没留下…
展开
-
mysql分表在真实项目中的实践
1. 分表在项目的实践2. 分库分表带来的新挑战1. 分表在项目的实践2. 分库分表带来的新挑战原创 2020-10-30 18:56:47 · 319 阅读 · 0 评论 -
mysql分库分表基础知识介绍
1. 分库分表场景1.1 读写分离场景回顾1.2 分库分表场景2. 水平与垂直分库2.1 垂直分库2.2 水平分库3. 水平与垂直分表3.1 水平分表3.2 垂直分表1. 分库分表场景1.1 读写分离场景回顾在前两篇文章中说清楚了读写分离的场景,读写分离主要解决的是高并发场景下读多写少的场景,写入事务锁影响读效率的问题;可能有读者想问,那如果是高并发场景的多读多写呢?在读写分离中我们也说明了这种场景可能采用mysql的集群来实现,即多主多从;1.2 分库分表场景上面提到了多读多写的这种场景,.原创 2020-10-18 23:01:33 · 193 阅读 · 2 评论 -
mysql5.7主从复制常遇问题
1. 主从不一致问题1.1 由于Position不一致导致主从同步失败问题描述1.1.1 解决方案:选择跳过本次同步1.1.2 解决方案:将master binlog再次同步到slave2. mysql5.7 的并行复制2.1 回顾mysql5.7之前的并行复制2.1 mysql5.7的并行复制3. mysql8 write-set的并行复制4. mysql5.7主从复制压测1. 主从不一致问题1.1 由于Position不一致导致主从同步失败问题描述查看master库和slave库的状态show.原创 2020-10-14 17:34:08 · 824 阅读 · 1 评论 -
mysql读写分离详解及同步延迟问题
1. 读写分离的目的1.1 什么是读写分离是将mysql多实例化,写数据时,将数据写入main服务,读请求时,从slave服务读取数据,将读和写拆分开,每次main收到写数据时,会将binlog日志同步到slave服务,slave服务再将binlog在自己的实例中执行,以达到数据是一致性的;1.2 读写分离的场景当数据库系统出现瓶颈时,有很多种优化方式,读写分离只能算是其中的一种,它主要解决的问题是,数据库的读多写少,读请求非常多,但是写请求非常少;为什么呢?我们分几种情况讨论:读多写少:1)原创 2020-10-09 21:28:38 · 1069 阅读 · 0 评论 -
浅谈InnoDB索引原理
说起Mysql就离不开SQL优化,说起优化就离不开索引,那么什么是索引?为什么加了索引就可以快?那接下来我们就一起来探讨一下索引相关的知识!一、数据结构中常见的索引1.二叉树说起二叉树,我们都知道每个结点最多只能有两个子结点,例如:可以发现二叉树很有规律,左子结点小于当前结点,右子结点大于当前结点。那这样不是查询起来很方便呢?二叉树的性质决定了它的时间复杂度为 Olog(n),当然,二叉树的时间复杂度与它的插入顺序有着,如果按升序或降序的方式插入数据,那么它的二叉树的高度h就与结点个数相等了,此时原创 2020-07-25 16:19:15 · 243 阅读 · 0 评论 -
mysql死锁常见的案例分析
1.无序更新引发的死锁起因:在最近的项目中遇到一个死锁的场景,其它系统会推送一些单据(主表和从表结构)到我的系统中更新数据,而单据在我的系统中也提供给业务人员做修改操作;就这么一个场景,我们创建一张表来模拟出问题所在;创建一张测试表CREATE TABLE lock_test( id INT PRIMARY KEY AUTO_INCREMENT, codeNo INT, number INT, UNIQUE code_index(codeNo)) ENGINE=InnoDBid原创 2020-07-24 19:04:16 · 553 阅读 · 0 评论 -
MySQL的Explain详解
Explain详解1. 理解执行计划各列的作用1.1 Explain简单使用1.2 各列详细讲解1.2.1 id1.2.2 select_type1.2.3 table1.2.4 partitions1.2.5 type1.2.6 possible_keys1.2.7 key1.2.8 key_len1.2.9 ref1.2.10 rows1.2.11 filtered1.2.12 Extra2. show warningsExplain是MySQL执行用户SQL时,生成的一个执行计划,里面包含有MySQ原创 2020-06-27 17:47:48 · 240 阅读 · 0 评论 -
Mysql并发保证数据一致性——实例
1. 背景最近的项目中遇到一项问题,并发更新某一单据的时候,出现了更新失效的情况。比如:@Transactional(rollbackFor = Exception.class)public void update(Integer id){ //1.按id查询 //2.更新某一字段的值}生成的SQL大概是这样的:UPDATE table SET field = #{field,jdbcType=INTEGER}WHERE id= 1那么以上代码产生的问题就是:对于同原创 2020-06-07 10:17:59 · 1174 阅读 · 0 评论