04 2021 档案

摘要:今天这篇文章,我会继续和你介绍在业务高峰期临时提升性能的方法。从文章标题“MySQL是怎么保证数据不丢的?”,你就可以看出来,今天我和你介绍的方法,跟数据的可靠性有关。 在专栏前面文章和答疑篇中,我都着重介绍了WAL机制(你可以再回顾下第2篇、第9篇、第12篇和第15篇文章中的相关内容),得到的结论 阅读全文
posted @ 2021-04-29 23:36 CS408 阅读(126) 评论(0) 推荐(0) 编辑
摘要:不知道你在实际运维过程中有没有碰到这样的情景:业务高峰期,生产环境的MySQL压力太大,没法正常响应,需要短期内、临时性地提升一些性能。 我以前做业务护航的时候,就偶尔会碰上这种场景。用户的开发负责人说,不管你用什么方案,让业务先跑起来再说。 但,如果是无损方案的话,肯定不需要等到这个时候才上场。今 阅读全文
posted @ 2021-04-29 23:06 CS408 阅读(121) 评论(0) 推荐(0) 编辑
摘要:背景:专门汇总spring相关的问题,方便进行梳理 spring面试——事务问题汇总 spring ioc Spring IoC有什么好处呢? 因为采用了依赖注入,在初始化的过程中就不可避免的会写大量的new。这里IoC容器就解决了这个问题。这个容器可以自动对你的代码进行初始化,你只需要维护一个Co 阅读全文
posted @ 2021-04-29 08:19 CS408 阅读(74) 评论(0) 推荐(0) 编辑
摘要:背景:面试被问到一个提,说说事务失效的场景,答的很不好,所以平时还是加强总结,发散思维,多做准备。 失效可能的原因 Spring 事务失效的8大原因1、数据库引擎是否支持事务(Myisam不支持事务)2、注解所在的类是否被加载成Bean(对象没有被Spring管理)3、注解所在的方法是否为publi 阅读全文
posted @ 2021-04-29 07:12 CS408 阅读(1315) 评论(0) 推荐(0) 编辑
摘要:服务熔断 在微服务架构中,微服务之间的数据交互通过远程调用完成,微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,此时如果链路上某个微服务的调用响应时间过长或者不可用,那么对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,导致“雪崩效应”。 服务熔断是应对雪崩效应的一 阅读全文
posted @ 2021-04-26 10:05 CS408 阅读(242) 评论(0) 推荐(0) 编辑
摘要:20讲幻读是什么,幻读有什么问题 在上一篇文章最后,我给你留了一个关于加锁规则的问题。今天,我们就从这个问题说起吧。 为了便于说明问题,这一篇文章,我们就先使用一个小一点儿的表。建表和初始化语句如下(为了便于本期的例子说明,我把上篇文章中用到的表结构做了点儿修改): CREATE TABLE `t` 阅读全文
posted @ 2021-04-24 00:02 CS408 阅读(1212) 评论(1) 推荐(1) 编辑
摘要:在MySQL中,有很多看上去逻辑相同,但性能却差异巨大的SQL语句。对这些语句使用不当的话,就会不经意间导致整个数据库的压力变大。 我今天挑选了三个这样的案例和你分享。希望再遇到相似的问题时,你可以做到举一反三、快速解决问题。 案例一:条件字段函数操作 假设你现在维护了一个交易系统,其中交易记录表t 阅读全文
posted @ 2021-04-23 22:09 CS408 阅读(145) 评论(0) 推荐(0) 编辑
摘要:背景经历 当时我工作近5年,明显感觉到了瓶颈期。具体来说,感觉自己用过很多框架、做过一些技术设计、也有过一些产出,但是从技术深度上感觉不足,到后期时做事也没有明显挑战,完全适应了公司节奏,说句不好听的成了老油条,可以每天舒服的混日子(这也有好处,有时间准备面试)。这对于个人成长不利,长此以往可能面临 阅读全文
posted @ 2021-04-23 21:52 CS408 阅读(449) 评论(0) 推荐(0) 编辑
摘要:背景:mysql的执行计划在面试的时候必问,所以有必要搞清楚里面到底表达什么含义 不会看 Explain执行计划,劝你简历别写熟悉 SQL优化 不会看 Explain执行计划,劝你简历别写熟悉 SQL优化 阅读全文
posted @ 2021-04-23 07:51 CS408 阅读(52) 评论(0) 推荐(0) 编辑
摘要:在你开发应用的时候,一定会经常碰到需要根据指定的字段排序来显示结果的需求。还是以我们前面举例用过的市民表为例,假设你要查询城市是“杭州”的所有人名字,并且按照姓名排序返回前1000个人的姓名、年龄。 假设这个表的部分定义是这样的: CREATE TABLE `t` ( `id` int(11) NO 阅读全文
posted @ 2021-04-23 07:49 CS408 阅读(289) 评论(0) 推荐(0) 编辑
摘要:在今天这篇答疑文章更新前,MySQL实战这个专栏已经更新了14篇。在这些文章中,大家在评论区留下了很多高质量的留言。现在,每篇文章的评论区都有热心的同学帮忙总结文章知识点,也有不少同学提出了很多高质量的问题,更有一些同学帮忙解答其他同学提出的问题。 在浏览这些留言并回复的过程中,我倍受鼓舞,也尽我所 阅读全文
posted @ 2021-04-22 10:59 CS408 阅读(119) 评论(0) 推荐(0) 编辑
摘要:14讲count(*)这么慢,我该怎么办 在开发系统的时候,你可能经常需要计算一个表的行数,比如一个交易系统的所有变更记录总数。这时候你可能会想,一条select count(*) from t 语句不就解决了吗? 但是,你会发现随着系统中记录数越来越多,这条语句执行得也会越来越慢。然后你可能就想了 阅读全文
posted @ 2021-04-22 09:48 CS408 阅读(272) 评论(0) 推荐(0) 编辑
摘要:12讲为什么我的MySQL会“抖”一下 平时的工作中,不知道你有没有遇到过这样的场景,一条SQL语句,正常执行的时候特别快,但是有时也不知道怎么回事,它就会变得特别慢,并且这样的场景很难复现,它不只随机,而且持续时间还很短。 看上去,这就像是数据库“抖”了一下。今天,我们就一起来看一看这是什么原因。 阅读全文
posted @ 2021-04-21 18:00 CS408 阅读(422) 评论(0) 推荐(0) 编辑
摘要:09讲普通索引和唯一索引,应该怎么选择 在前面的基础篇文章中,我给你介绍过索引的基本概念,相信你已经了解了唯一索引和普通索引的区别。今天我们就继续来谈谈,在不同的业务场景下,应该选择普通索引,还是唯一索引? 假设你在维护一个市民系统,每个人都有一个唯一的身份证号,而且业务代码已经保证了不会写入两个重 阅读全文
posted @ 2021-04-19 22:43 CS408 阅读(218) 评论(0) 推荐(0) 编辑
摘要:背景 :这节的内容有点多 还是需要好好梳理梳理,主要是mysql中的各种锁,以及各个隔离级别是如何实现的。 全局锁:用来做备份使用。 支持隔离级别的引擎使用mysqldump,通过MVCC保证视图的一致性,备份过程中数据可以正常的更新; 对于不支持隔离级别的引擎MyISAM则使用Flush tabl 阅读全文
posted @ 2021-04-18 18:01 CS408 阅读(203) 评论(0) 推荐(0) 编辑
摘要:04讲深入浅出索引(上) 一句话简单来说,索引的出现其实就是为了提高数据查询的效率,就像书的目录一样。一本500页的书,如果你想快速找到其中的某一个知识点,在不借助目录的情况下,那我估计你可得找一会儿。同样,对于数据库的表而言,索引其实就是它的“目录”。 索引的常见模型(数据结构) 我先给你介绍三种 阅读全文
posted @ 2021-04-17 16:41 CS408 阅读(179) 评论(0) 推荐(0) 编辑
摘要:注:转自极客时间 丁奇 《Mysql 实战45讲》仅供自己揣摩 mysql的整体结构 01 一条sql的执行过程是什么 分为server层和存储引擎层server层包含:连接器:管理连接,权限验证查询缓存:命中则直接返回结果分析器:词法分析,语法分析优化器:执行计划生成,索引选择执行器:操作引擎,返 阅读全文
posted @ 2021-04-16 14:09 CS408 阅读(269) 评论(0) 推荐(0) 编辑
摘要:公平和非公平锁的区别 总结:公平锁和非公平锁只有两处不同: 非公平锁在调用 lock 后,首先就会调用 CAS 进行一次抢锁,如果这个时候恰巧锁没有被占用,那么直接就获取到锁返回了。非公平锁在 CAS 失败后,和公平锁一样都会进入到 tryAcquire 方法,在 tryAcquire 方法中,如果 阅读全文
posted @ 2021-04-16 13:56 CS408 阅读(48) 评论(0) 推荐(0) 编辑
摘要:背景:在和一个同事聊天中,说到面试可能会问到怎么实现流量控制。一时没有头绪,网上查资料记录下来。 限流算法科普 图解+代码|常见限流算法以及限流在单机分布式场景下的思考 ps:看这篇博客就够了 什么是限流?限流指代的是 限制到达系统的并发请求数,使得系统能够正常的处理 部分 用户的请求,来保证系统的 阅读全文
posted @ 2021-04-15 22:29 CS408 阅读(282) 评论(0) 推荐(0) 编辑
摘要:背景:在讲到模板模式时候说到钩子方法,不是很理解,做个记录! 彻底搞懂模板模式 抽象方法和空实现方法的区别,当要实例化对象调用的使用时候,抽象方法必须实现,空方法可以不用重写 模板模式是父类提供模板方法,子类提供具体实现,对于子类需要实现的方法,父类写成抽象方法,强制子类实现,对于子类不需要实现的方 阅读全文
posted @ 2021-04-13 11:40 CS408 阅读(247) 评论(0) 推荐(0) 编辑
摘要:背景:在开发mapi的过程中,自以为很了解其中的原理。实际上并不了解,主要是使用了dubbo中的泛型化调用的思想; 原理总结 dubbo泛化调用原理 ps:主要原理讲解,参考原文 什么是泛化调用? 泛接口调用方式主要用于客户端没有API接口及模型类元的情况,参数及返回值中的所有POJO均用Map表示 阅读全文
posted @ 2021-04-08 10:59 CS408 阅读(1801) 评论(0) 推荐(0) 编辑
摘要:深拷贝和浅拷贝的区别 Java 浅拷贝和深拷贝的理解和实现方式 浅拷贝(Shallow Copy): ①对于数据类型是基本数据类型的成员变量,浅拷贝会直接进行值传递,也就是将该属性值复制一份给新的对象。因为是两份不同的数据,所以对其中一个对象的该成员变量值进行修改,不会影响另一个对象拷贝得到的数据。 阅读全文
posted @ 2021-04-06 19:59 CS408 阅读(79) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示