数据库系列:事务的4种隔离级别
数据库系列:MySQL慢查询分析和性能优化 数据库系列:MySQL索引优化总结(综合版)数据库系列:高并发下的数据字段变更数据库系列:覆盖索引和规避回表数据库系列:数据库高可用及无损扩容数据库系列:使用高区分度索引列提升性能数据库系列:前缀索引和索引长度的取舍数据库系列:MySQL引擎
数据库系列:RR和RC下,快照读的区别
数据库系列:MySQL慢查询分析和性能优化 数据库系列:MySQL索引优化总结(综合版)数据库系列:高并发下的数据字段变更数据库系列:覆盖索引和规避回表数据库系列:数据库高可用及无损扩容数据库系列:使用高区分度索引列提升性能数据库系列:前缀索引和索引长度的取舍数据库系列:MySQL引擎
数据库系列:前缀索引和索引长度的取舍
数据库系列:MySQL慢查询分析和性能优化 数据库系列:MySQL索引优化总结(综合版)数据库系列:高并发下的数据字段变更数据库系列:覆盖索引和规避回表数据库系列:数据库高可用及无损扩容数据库系列:使用高区分度索引列提升性能1 背景有时候我们需要在字符类型的字段上建设索引,但是如果该字
数据库系列:使用高区分度索引列提升性能
数据库系列:MySQL慢查询分析和性能优化 数据库系列:MySQL索引优化总结(综合版)数据库系列:高并发下的数据字段变更1 背景我们常常在创建组合索引的时候,会纠结一个问题,组合索引包含多个索引字段,它的顺序应该怎么放,怎样能达到更大的性能利用。正确的索引字段顺序应该取决于使用该索引的查
InnoDB 全表扫描和全主键扫描一样吗?
《explain 显示 count(*) 使用了索引,实际却是全表扫描》提到了全表扫描和对主键索引进行全索引扫描,我把这两者等价对待了。对主键索引进行全索引扫描对应的就是本文标题中的全主键扫描。因为有两位读者就全表扫描、全主键扫描这两种读取数据的方式和我进行了交流,为了弄清楚两者到底是不是
my.cnf 增加一个配置项,MySQL 不能启动了
有一天,同事问了我一个来自客户的问题:在 my.cnf 中增加系统变量 foreign_key_checks 之后,MySQL 就启动不了了。我们尝试通过 SET 命令修改 foreign_key_checks,成功了。查看官方文档,明明也是有这个系统变量的:为什么把 foreign_key
别B+树了,out了
今天这篇先聊聊其内部引入 Blink Tree 来替换 B+Tree 的事情
SpringBoot+MyBatisPlus实现读写分离
前言随着业务量的不断增长,数据库的读写压力也越来越大。为了解决这个问题,我们可以采用读写分离的方案来分担数据库的读写负载。本文将介绍如何使用 Spring Boot + MyBatis Plus + MySQL 实现读写分离。读写分离原理读写分离是指将数据库的读操作和写操作分别放到不同的数据库
搭建Mysql主从复制
MySQL主从复制是一种常用的数据库高可用性解决方案,可以提高数据库的可用性和性能。本教程将介绍如何搭建MySQL主从复制。1、MySQL 支持的复制类型基于语句的复制(STATEMENT):在主服务器上执行的 SQL 语句,在从服务器上执行同样的语句。MySQL 默认采用基于语句的复制,效率
MySQL 自适应哈希索引(一)构造
曾经优化慢查询时,经常在日志中看到 truncate,当时一直疑惑 truncate 为什么会慢。转到数据库方向之后,又碰到过几次 truncate 执行时间过长,导致 MySQL 短暂卡住的问题。经过源码分析和同事测试验证,发现这几次的问题都跟自适应哈希索引有关,所以,深入研究下自适应哈希索
记一次线上问题 → Deadlock 的分析与优化
数据库的加锁是比较复杂的,不同的数据库的加锁实现也是有区别的,本篇中的死锁案例还是比较好分析的
记一次字符串末尾空白丢失的排查 → MySQL 是会玩的!
一天,小伙伴找到我,他说他碰到一个很奇怪的问题;他说:明明表名的入参是 test ,为什么展示到界面的记录包括 test 这条记录?
MySQL 幻读问题
幻读问题产生的本质原因是:如果事物中操作的都是快照读,那么是不会产生幻读问题的。
xplain 显示 count(*) 使用了索引,实际却是全表扫描
这篇文章依然源于一位读者的提问:explain 显示 count(*) 使用了索引,optimizer trace 却显示为全表扫描,这是为什么?去年,我写过一篇关于 count(distinct) 实现原理的文章《count(distinct) 玩出了新花样》。还记得当时调试源码的过程中,如
美团面试官:可重复读隔离级别实现原理是什么?(一文搞懂MVCC机制)
可重复读隔离级别实现原理是什么?它和MVCC又有什么关系?什么是Read View?
MySQL 不一样的 NULL
你好,我是yes。前不久看到面试群里有同学发表了一个疑问~
答读者问:唯一索引冲突,为什么主键的 supremum 记录会加 next-key 锁?
本文缘起于一位读者的提问:插入一条记录,导致唯一索引冲突,为什么会对主键的 supremum 记录加 next-key 排他锁?我在 MySQL 8.0.32 复现了问题,并调试了加锁流程,写下来和大家分享。了解完整的加锁流程,有助于我们更深入的理解 InnoDB 的记录锁,希望大家有收获。
还傻傻搞不懂MySQL事务隔离级别么(图文并茂,保证你懂!)
并行事务可能出现的问题,具体表象就是脏写,脏读,不可重复读,幻读。MySQL通过隔离不同程度地规避这些问题,MySQL隔离级别有4种,包括:读未提交(READ UNCOMMITTED)、读提交 (READ COMMITTED)、可重复读 (REPEATABLE READ)、串行化 (SERIALIZ
不要用 in + 子查询
你好,我是yes。前两天我的 VIP 用户向我抛出了一个 SQL 问题,他的 MySQL 是 8.x版本:大概意思如下 sql :select * from A where id in (  sele
慢查询日志中的 Lock_time 从哪里来?
经常关注慢查询日志的读者,和 Lock_time 应该算是老相识了,大家对这位老相识了解有多少呢?研究 Lock_time 之前,我对它的了解,仅限于它表示锁等待时间。至于它包含哪些锁等待时间、怎么计算得到的,我并不清楚。所以,我一直有个困惑:为什么有些 SQL 执行时间很长,Lock_time

有开始,就会有进​步!

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

专家作者推荐

巡山小汪

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

飞哥开发内功

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

踩刀诗人

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

Brand

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

专题推荐

Netty 是一个异步事件驱动的网络通信层框架,用于快速开发高可用高性能的服务端网络框架与客户端程序,它极大地简化了 TCP 和 UDP 套接字服务器等网络编程。
作者:闪电侠,《跟闪电侠学 Netty》已出版了。书的前半部分是掘金小册中的内容:通过一个完整的 IM 项目入门 Netty;后半部分用了较大的篇幅来介绍 Netty 的底层原理,也会穿插讲一些源码阅读的思路,希望能够帮助到你。
13篇文章21840阅读量
Out of memory (OOM) 是一种操作系统或者程序已经无法再申请到内存的状态。经常是因为所有可用的内存,包括磁盘交换空间都已经被分配了。OOM的官方解释是:Understand the OutOfMemoryError Exception,根据HeapDump性能社区专属讲师公与的总结,常见的OOM有以下10种(其中OOM Killer是操作系统层面的概念)。
11篇文章12748阅读量