随笔分类 -  Java高频面试题

摘要:大家都在用MySQL count(*)统计总数,到底有什么问题?在日常开发工作中,我经常会遇到需要统计总数的场景,比如:统计订单总数、统计用户总数等。一般我们会使用MySQL 的count函数进行统计,但是随着数据量逐渐增大,统计耗时也越来越长,最后竟然出现慢查询的情况,这究竟是什么原因呢?本篇文章带你一下学习一下。 阅读全文
posted @ 2022-09-19 22:45 一灯架构 阅读(1544) 评论(3) 推荐(7) 编辑
摘要:MySQL到底有没有解决幻读问题?这篇文章彻底给你解答MySQL InnoDB引擎在Repeatable Read(可重复读)隔离级别下,到底有没有解决幻读的问题? 网上众说纷纭,有的说解决了,有的说没解决,甚至有些大v的意见都无法达成统一。 今天就深入剖析一下,彻底解决这个幻读的问题。 解决幻读问题之前,先普及几个知识点。 阅读全文
posted @ 2022-09-13 14:16 一灯架构 阅读(1476) 评论(2) 推荐(2) 编辑
摘要:硬核解析MySQL的MVCC实现原理,面试官看了都直呼内行MVCC全称是Multi-Version Concurrency Control(多版本并发控制),是一种并发控制的方法,通过维护一个数据的多个版本,减少读写操作的冲突。 如果没有MVCC,想要实现同一条数据的并发读写,还要保证数据的安全性,就需要操作数据的时候加读锁和写锁,这样就降低了数据库的并发性能。 阅读全文
posted @ 2022-09-06 20:28 一灯架构 阅读(2513) 评论(4) 推荐(2) 编辑
摘要:MySQL查询性能优化七种武器之索引下推前面已经讲了MySQL的其他查询性能优化方式,没看过可以去了解一下: MySQL查询性能优化七种武器之索引潜水 MySQL查询性能优化七种武器之链路追踪 今天要讲的是MySQL的另一种查询性能优化方式 — 索引下推(Index Condition Pushdown,简称ICP),是MySQL5.6版本增加的特性。 阅读全文
posted @ 2022-08-25 13:14 一灯架构 阅读(1514) 评论(2) 推荐(3) 编辑
摘要:三道MySQL联合索引面试题,淘汰80%的面试者,你能答对几道众所周知MySQL联合索引遵循最左前缀匹配原则,在少数情况下也会不遵循(有兴趣,可以翻一下上篇文章)。 创建联合索引的时候,建议优先把区分度高的字段放在第一列。 至于怎么统计区分度,可以按照下面这种方式。 阅读全文
posted @ 2022-08-23 10:26 一灯架构 阅读(1208) 评论(1) 推荐(1) 编辑
摘要:MySQL查询性能优化七种武器之链路追踪MySQL优化器可以生成Explain执行计划,我们可以通过执行计划查看是否使用了索引,使用了哪种索引? 但是到底为什么会使用这个索引,我们却无从得知。 好在MySQL提供了一个好用的工具 — optimizer trace(优化器追踪),可以帮助我们查看优化器生成执行计划的整个过程,以及做出的各种决策,包括访问表的方法、各种开销计算、各种转换等。 阅读全文
posted @ 2022-08-17 10:30 一灯架构 阅读(1133) 评论(1) 推荐(0) 编辑
摘要:手把手教你分析MySQL查询性能瓶颈,包教包会当一条SQL执行较慢,需要分析性能瓶颈,到底慢在哪? 我们一般会使用Explain查看其执行计划,从执行计划中得知这条SQL有没有使用索引?使用了哪个索引? 但是执行计划显示内容不够详细,如果显示用到了某个索引,查询依然很慢,我们就无法得知具体是哪一步比较耗时? 好在MySQL提供一个SQL性能分析工具 — Profile。 阅读全文
posted @ 2022-08-15 10:42 一灯架构 阅读(2109) 评论(4) 推荐(5) 编辑
摘要:手把手教你定位线上MySQL锁超时问题,包教包会昨晚我正在床上睡得着着的,突然来了一条短信。 什么?线上的订单无法取消! 我赶紧登录线上系统,查看业务日志。发现有MySQL锁超时的错误日志。 阅读全文
posted @ 2022-08-11 12:06 一灯架构 阅读(1532) 评论(6) 推荐(6) 编辑
摘要:MySQL查询性能优化七种武器之索引潜水有读者可能会一脸懵逼? 啥是索引潜水? 你给起的名字的吗?有没有索引蛙泳? 这个名字还真不是我起的,今天要讲的知识点就叫索引潜水(Index dive)。 先要从一件怪事说起: 阅读全文
posted @ 2022-08-09 10:18 一灯架构 阅读(1252) 评论(3) 推荐(4) 编辑
摘要:我说MySQL联合索引遵循最左前缀匹配原则,面试官让我回去等通知面试官:我看你的简历上写着精通MySQL,问你个简单的问题,MySQL联合索引有什么特性? 我:MySQL联合索引遵循最左前缀匹配原则,即最左优先,查询的时候会优先匹配最左边的索引。 例如当我们在(a,b,c)三个字段上创建联合索引时,实际上是创建了三个索引,分别是(a)、(a,b)、(a,b,c)。 查询条件中包含这些索引的时候,查询就会用到索引。例如下面的查询条件,就可以用到索引: 阅读全文
posted @ 2022-08-07 11:24 一灯架构 阅读(894) 评论(6) 推荐(2) 编辑
摘要:手把手教你定位线上MySQL慢查询问题,包教包会慢查询日志默认不开启,建议手动开启,方便我们定位线上问题。 执行时间超过阈值的SQL会被写入到慢查询日志当中,这样可以帮助我们记录执行时间过长的SQL语句,定位线上慢SQL问题,方便我们进行SQL性能调优。 阅读全文
posted @ 2022-08-05 10:42 一灯架构 阅读(1315) 评论(2) 推荐(4) 编辑
摘要:精心整理16条MySQL使用规范,减少80%问题,推荐分享给团队上篇文章介绍了如何创建合适的MySQL索引,今天再一块学一下如何更规范、更合理的使用MySQL? 合理规范的使用MySQL,可以大大减少开发工作量和线上问题,并提升SQL查询性能。 我精心总结了这16条MySQL规约,分享给大家,欢迎评论指正。 阅读全文
posted @ 2022-08-02 22:34 一灯架构 阅读(1077) 评论(1) 推荐(4) 编辑
摘要:精心总结十三条建议,帮你创建更合适的MySQL索引上篇文章讲到使用MySQL的Explain命令可以分析SQL性能瓶颈,优化SQL查询,以及查看是否用到了索引。 我们都知道创建索引可以提高查询效率,但是具体该怎么创建索引? 哪些字段适合创建索引? 哪些字段又不适合创建索引? 本文跟大家一块学习一下如何创建合适数据库索引。 阅读全文
posted @ 2022-07-31 23:44 一灯架构 阅读(1377) 评论(1) 推荐(6) 编辑
摘要:学会使用MySQL的Explain执行计划,SQL性能调优从此不再困难上篇文章讲了MySQL架构体系,了解到MySQL Server端的优化器可以生成Explain执行计划,而执行计划可以帮助我们分析SQL语句性能瓶颈,优化SQL查询逻辑,今天就一块学习Explain执行计划的具体用法。 阅读全文
posted @ 2022-07-28 10:32 一灯架构 阅读(1669) 评论(4) 推荐(15) 编辑
摘要:【干货】MySQL底层架构设计,你了解多少?很多开发同学对SQL优化如数家珍,却对MySQL架构一知半解。岂不是只见树叶,不见森林,终将陷入细节中不能自拔。 今天就一块学习MySQL分层架构,深入了解MySQL底层实现原理,以及每层的作用,我们常见的SQL优化到底在哪一层做了优化? 阅读全文
posted @ 2022-07-17 23:58 一灯架构 阅读(1144) 评论(0) 推荐(2) 编辑
摘要:MySQL查询为什么没走索引?这篇文章带你全面解析工作中,经常遇到这样的问题,我明明在MySQL表上面加了索引,为什么执行SQL查询的时候却没有用到索引? 同一条SQL有时候查询用到了索引,有时候却没用到索引,这是咋回事? 原因可能是索引失效了,失效的原因有以下几种,看你有没有踩过类似的坑? 阅读全文
posted @ 2022-07-08 00:05 一灯架构 阅读(1262) 评论(5) 推荐(4) 编辑
摘要:高级程序员必知必会,一文详解MySQL主从同步原理,推荐收藏MySQL主从同步是基于Bin Log实现的,而Bin Log记录的是原始SQL语句。 Bin Log共有三种日志格式,可以binlog_format配置参数指定。 阅读全文
posted @ 2022-07-06 23:20 一灯架构 阅读(1403) 评论(1) 推荐(2) 编辑
摘要:查询效率提升10倍!3种优化方案,帮你解决MySQL深分页问题开发经常遇到分页查询的需求,但是当翻页过多的时候,就会产生深分页,导致查询效率急剧下降。 有没有什么办法,能解决深分页的问题呢? 本文总结了三种优化方案,查询效率直接提升10倍,一起学习一下。 阅读全文
posted @ 2022-07-03 23:09 一灯架构 阅读(3265) 评论(8) 推荐(8) 编辑
摘要:女朋友说:你要搞懂了MySQL三大日志,我就让你嘿嘿嘿!MySQL实现事务、崩溃恢复、集群的主从复制,底层都离不开日志,所以日志是MySQL的精华所在。只有了解MySQL日志,才算是彻底搞懂MySQL。 今天一灯就带你深入浅出的学习MySQL的三大日志系统,Redo Log(重做日志)、Undo Log(恢复日志)、Bin Log(备份日志)。 阅读全文
posted @ 2022-06-30 23:08 一灯架构 阅读(1212) 评论(20) 推荐(3) 编辑
摘要:记一次排查线上MySQL死锁过程,不能只会curd,还要知道加锁原理昨晚我正在床上睡得着着的,突然来了一条短信。 啥,线上MySQL死锁了,我赶紧登录线上系统,查看业务日志。 阅读全文
posted @ 2022-06-29 22:36 一灯架构 阅读(1561) 评论(4) 推荐(8) 编辑

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