大招落地:MySQL 插入更新死锁源码分析
天再来分析一个死锁场景。下面开始真正的内容。建表语句:```javaCREATE TABLE `tenant_config` ( `id` bigint(21) NOT NULL AUTO_INCR
千万级数据表选错索引导致的线上慢查询事故
前言又和大家见面了!又两周过去了,我的云笔记里又多了几篇写了一半的文章草稿。有的是因为质量没有达到预期还准备再加点内容,有的则完全是一个灵感而已,内容完全木有。羡慕很多大佬们,一周能产出五六篇文章,给
从一次数据库问题排查实战
前言上周五,一同事在开发时遇到了一个问题,叫我帮忙看下.在描述这个同事遇到问题之前,我先简单做一些知识的铺垫,否则不好描述.这里面涉及到的知识点有Spring的事务传播机制、数据库的隔离级别等.本篇重
记一次中间件导致的慢SQL排查过程
前言最近发现线上出现一个奇葩的问题,这问题让笔者定位了好长时间,期间排查问题的过程还是挺有意思的,正好博客也好久不更新了,就以此为素材写出了本篇文章。 Bug现场我们的分库分表中间件在经过一年的沉淀之
Mysql中慢SQL的分析与优化
解决思路:将数据存放在更快的地方;适当合并I/O;利用分布式架构
记一次慢SQL优化
一次典型的慢SQL优化
为什么mysql的count()方法这么慢?
兄弟们。浅浅的炫个富吧。说出来你们可能不信。手机你们有吗?我有。短信,知道吧?一条一毛钱,我天天发。你敢想吗?所以说,年轻人,有钱是真的好。今天,我们就以短信为话题聊起。短信,它又叫SMS。 比如说,你有一张短信表(sms),里面放了各种需要发送的短信信息。s
索引失效的这10种场景,把我坑惨了
我之前写的一篇文章《聊聊sql优化的15个小技巧》,自发表之后,在全网广受好评,被很多大佬转载过,说明了这类文章的价值。今天我接着上一期数据库的话题,更进一步聊聊索引的相关问题,因为索引是大家都比较关心的公共话题,确实有很多坑。不知道你在实际工作中,有没有遇到过下面的这两种情况:明明在
SQL优化之数据倾斜解决实战
导言数据倾斜即指在大数据计算任务中某个处理任务的进程(通常是一个JVM进程)被分配到的任务量过多,导致任务运行时间超长甚至最终失败,进而导致整个大任务超长时间运行或者失败。外部表现的话,在HiveSQL任务里看到map或者reduce的进度一直是99%持续数小时没有变化;在SparkSQL里则是某
慢查询性能优化实践
项目组接到两家客户反馈,部分生产统计报表查询缓慢,甚至某些报表无法查询出1个月的统计数据。
如何写出高性能 SQL 语句?
1, 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2,应尽量避免在 where 子句中对字段进行 null 值判断,创建表时NULL是默认值,但大多数时候应该使用NOT NULL,或者使用一个特殊的值,如0,-1作为默 认
【译】SQL性能优化:关于查找慢查询的几种方法分享
SQL Server的查询运行太慢了,以至于大家都不太喜欢,介绍几种方法可以快速跟踪它们,以便处理这些查询!
聊聊sql优化的15个小技巧
大家好,我是苏三,又跟大家见面了。前言sql优化是一个大家都比较关注的热门话题,无论你在面试,还是工作中,都很有可能会遇到。如果某天你负责的某个线上接口,出现了性能问题,需要做优化。那么你首先想到的很有可能是优化sql语句,因为它的改造成本相对于代码来说也要小得多。那么,如何优化sql
美团面试官:可重复读隔离级别实现原理是什么?(一文搞懂MVCC机制)
可重复读隔离级别实现原理是什么?它和MVCC又有什么关系?什么是Read View?
注意!分页 + 模糊查询有坑!
前言不知道你有没有使用过Mysql的like语句,进行模糊查询?不知道你有没有将查询结果,进行分页处理?模糊查询,加上分页处理,会有意想不到的坑,不信我们继续往下看。我之前提供过一个品牌查询接口,给前端品牌选择控件使用的。当时为了性能考虑,怕前端控件因为一次性加载太多的品牌,而导致页面卡死
带你遨游银河系的 10 种分布式数据库
大家好,我是悟空。这次我们来聊下分布式场景下的数据库。首先我们还是来看下关系型和非关系型的数据库的区别和特点。一、关系型 vs 非关系型1.1 关系型1.1.1 什么是关系型?关系型数据库指的是使用关系模型(二维表格模型)来组织数据的数据库,由二维表及其之间的联系所组成的一个数据组织。1.
为什么我建议在复杂但是性能关键的表上所有查询都加上 force index
最近,又遇到了慢 SQL,简单的看了下,又是因为 MySQL 本身优化器还有查询计划估计不准的问题。
性能优化 · MySQL常见SQL错误用法
今天给大家分享几个SQL常见的“坏毛病”及优化技巧
where field in(...) 是怎么执行的?
我们日常写 SQL 时,子查询应该算是常客了。MySQL 为子查询执行准备了各种优化策略,接下来我会写子查询各种优化策略是怎么执行的系列文章。本文以包含最简单的 in 条件的查询入手,介绍 where field in (8,18,88,…) 这种值都是常量的 in 条件是怎么执行的。这虽然不是
一次MySQL分页导致的事故
导语:线上的一个查询数据的接口被疯狂的失去理智般的调用,这个操作直接导致线上的MySql集群被拖慢了。对比日志发现,很多分页的时间是重叠的,对方应该是多线程调用。原来是客户端设置了分页,分页操作通常会使用limit加上偏移量的办法实现,同时再加上合适的order by子句。但这会出现一个常见问题:
长达 1.7 万字的 explain 关键字指南!
要让 SQL 又快又好的前提是,我们知道它「病」在哪里,而 explain 关键字就是 MySQL 提供给我们的一把武器!
从输入 SQL 到 MySQL 返回数据到底发生了什么?
导语当我们输入 SQL 到 MySQL 返回数据,这中间到底发生了什么呢?今天我们就来扒一扒这里面的细节。 正文SQL 执行流程其实一个 SQL 从输入到返回数据,其过程大致为:建立连接、分析 SQL、优化 SQL、执行 SQL。建立连接当我们发送 SQL 给 MySQL 之
SQL join 语句这样优化准没错!
导语面试最怕遇到的问题是什么,如何做优化一定当仁不让,SQL 优化更是首当其冲,本篇从干货角度教给大家SQL join语句的优化方法,如果你还不懂怎么优化,一定要阅读并背诵本篇! 正文Simple Nested-Loop Join我们来看一下当进行 join 操作时,mysql是
MySQL中这14个小玩意,让人眼前一亮!
大家好,我是苏三,又跟大家见面了。前言我最近几年用M
MySQL 不相关子查询怎么执行?
对于 where 条件包含子查询的 SQL,我们可以做一点优化,就是把这类 where 条件放在最后,让 MySQL 能够少做一点无用功,提升 SQL 执行效率。
SQL运行内幕:从执行原理看调优的本质
相信大家看过无数的MySQL调优经验贴了,会告诉你各种调优手段,如:避免 select *;join字段走索引;慎用in和not in,用exists取代in;避免在where子句中对字段进行函数操作;尽量避免更新聚集索引;group by如果不需要排序,手
MySQL到底有没有解决幻读问题?
MySQL InnoDB引擎在Repeatable Read(可重复读)隔离级别下,到底有没有解决幻读的问题?网上众说纷纭,有的说解决了,有的说没解决,甚至有些大v的意见都无法达成统一。今天就深入剖析一下,彻底解决这个幻读的问题。解决幻读问题之前,先普及几个知识点。1. 并发事务产生的问题
【译】作为程序员应该知道的最基本SQL优化建议
当我们谈论系统性能优化时,除了代码级别的各种有针对性的优化外,还有一个非常重要的手段来优化数据库的性能。在互联网系统中,当系统访问越来越多,数据量越来越多时,数据库的压力将越来越大。如果数据库表结构设计不正确,SQL语句写得不好,代码性能可能极高,但系统会被数据库拖下来。因此,我们程序员有必要了
【译】SQL递归与CTE查询的原理和应用
介绍在本文中,我们将了解 SQL Recursive WITH CTE(公用表表达式)查询的工作原理,以及我们如何应用它们来处理分层数据模型。
SQL优化思路+经典案例分析
前言大家好,捡田螺的小男孩。SQL调优这块呢,大厂面试必问的。最近金九银十嘛,所以整理了SQL的调优思路,并且附几个经典案例分析。1.慢SQL优化思路。 慢查询日志记录慢SQLexplain分析SQL的执行计划profile 分析执行耗时Optimizer Trac
默认数据库主键、外键和唯一键索引策略是什么?
在本文中,我们将了解在使用 Oracle、SQL Server、PostgreSQL 和 MySQL 时默认的数据库主索引、外键索引和唯一键索引策略是什么。因此,如果你想知道在添加主键、外键或唯一键约束时这些顶级关系数据库中的一个是否会创建默认索引,那么本文将为你提供你一直在等待的答案.
系统上线前,SQL脚本的9大坑
系统上线时,非常容易出问题。即使之前在测试环境,已经执行过SQL脚本了。但是有时候,在系统上线时,在生产环境执行相同的SQL脚本,还是有可能出现一些问题。
数据库设计的步骤
数据库设计是指:根据用户的需求,在数据库管理系统上(比如:MySQL、Oracle),设计数据库的结构和建立数据库的过程。 数据库设计的设计内容包括:需求分析、概念结构设计、逻辑结构设计、物理结构设计、数据库的实施和数据库的运行和维护。
一次SQL优化,数据库查询速度提升 60 倍!
导语sql的性能优化能够帮助我们优化数据查询时间,本篇主要向大家介绍了10000w的数据在sql优化后查询速度提升60倍的优化过程。 正文有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms (execut

有开始,就会有进​步!

在追求性能的道路上,记录每一刻的成长!源码解读,编程技巧,外文翻译,技术实践,线上案例等等,记录自己,启发他人!

专家作者推荐

巡山小汪

关注微信公众号《解Bug之路》,有问题请在公众号中咨询:) 无论多么艰苦的时刻,都不要忘记,辉煌的未来,在你的眼中闪耀!

飞哥开发内功

《深入理解Linux网络》作者,腾讯搜狗十年工程师,公众号「开发内功修炼」作者!

踩刀诗人

聊聊技术,唠唠段子,偶尔做菜写诗,欢迎关注我的公众号 踩刀诗人

Brand

搜索关注微信公众号【架构与思维】:撰稿者为bat、字节的几位高阶研发/架构,专注技术分享。

专题推荐

本系列文章主要针对Dubbo2.6.2(dubbox2.8.4)版本,从源码的角度分析Dubbo内部的实现细节,加深对Dubbo的各配置参数底层实现原理的理解,更好的指导Dubbo实践。
11篇文章14468阅读量
GC(Garbage Collection)很大程度上帮助Java程序员解决了内存释放的问题,有了GC,就不需要再手动的去控制内存的释放。
12篇文章30275阅读量