谨慎这种子查询SQL写法,会触发bug

MySQL 

前言:在技术群看到有人分享了一个bug: SELECT * FROM student WHERE id IN (SELECT id FROM course),这个sql语句,course没有id列,会返回student所有行。 看到这条语句的时候,我第一反应就是如果course没有id列,那么执行的

MySQL5.7内存使用率高问题排查

MySQL 

一、内存使用率高且不释放问题排查 生产环境MySQL 5.7数据库告警内存使用率95%。排查MySQL内存占用问题的思路方法可以参考叶老师这篇文章:

MySQL8.0内存使用率高问题排查与解决方案

MySQL 

MySQL内存使用率高问题排查与解决方案:

MySQL复制原理

MySQL 

复制是基于 binlog 实现,学习之前必须要先掌握 binlog。MySQL 不是还有 redo 日志吗,为什么不直接基于 redo 日志来实现复杂。 实际上,redo 只有 innodb 引擎所独有的,MySQL 除了 innodb 还有 myisam,csv,memory 等存储引擎,对这些存

三大日志之一binlog

MySQL 

1. 什么是 binlog Binary log 是 MySQL server 层维护的重要二进制日志,用于记录数据库的所有更改操作。它记录了所有的 DDL 和 DML 语句(除了 select 和 show 外),并以事务的形式保存在磁盘中,以二进制的形式存储,不能直接使用 cat,tail 进行

MySQL 8安装目录文件详解

MySQL 

目录结构 bin 目录,包括 MySQL 的可执行文件 include 目录:MySQL 的头文件,供开发者使用 lib 目录:包括 MySQL 的库文件 share 目录:包括 MySQL 的共享文件,如错误信息和字符集文件 docs 目录:包括 MySQL 的文档和帮助文件 support-fi

深度解剖索引

MySQL 

一、什么是索引 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构,索引对于良好的性能非常关键,尤其是当表中的数据量越来越大时,索引对于性能的影响愈发重要。索引优化应该是对查询性能优化最有效的手段了。索引能够轻易将查询性能提高好几个数量级。 通俗来讲,索引类似文章

MySQL锁原理、加锁机制

MySQL 

嘛是锁?呐,这个就是锁了。那有了锁,对应是不是就要有钥匙了,有有有,查询占领锁的那条语句直接 kill 掉就行(后面再说)。当然了数据库里面的锁可不长这个样子,这里只是让读者对锁有个现实的印象。 那为什么要有锁呢?这个问题问的好,你外出上班门要不要上锁,那肯定要啊,不然就有小偷上门关顾的风险。好了好

MySQL Replication

MySQL 

MySQL副本集介绍 MySQL InnoDB ReplicaSet(也叫MySQL副本集,有些地方也翻译成MySQL复制集)是在 MySQL 8.0.19 版本(2020-01-13 Released)之后开始支持的,MySQL副本集中拥有一个primary节点,一个或多个secondary节点,

MySQL权限与角色

MySQL 

MySQL 权限介绍 MySQL 权限范围可分为三类: 管理整个数据库实例,比如 root 超级管理员,一般只能 localhost 本地访问,有些初学者安装好 MySQL 之后喜欢把 root 的 localhost 改成 %(允许任何 IP 进行访问)。但自己本地学习可以,但是在生产环境严禁这样