为什么 MySQL 不推荐默认值为 null ?
通常能听到的答案是使用了NULL值的列将会使索引失效,但是如果实际测试过一下,你就知道ISNULL会使用索引,所以上述说法有漏洞。着急的人拉到最下边看结论
MySQL 用 limit 为什么会影响性能?
一,前言首先说明一下MySQL的版本:mysql>selectversion();+-----------+|version()|+-----------+|5.7.17|+-----------+1rowinset(.00sec)表结构:mysql>desctest;+--------
MySQL 是如何实现 ACID 的?
本文主要探讨MySQLInnoDB引擎下ACID的实现原理,对于诸如什么是事务,隔离级别的含义等基础知识不做过多阐述。ACIDMySQL作为一个关系型数据库,以最常见的InnoDB引擎来说,是如何保证AC
9张图深入揭秘MySQL内部架构。。。
前言目前大部分的后端开发人员对MySQL的理解可能停留在一个黑盒子阶段。对MySQL基本使用没什么问题,比如建库、建表、建索引,执行各种增删改查。所有很多后端开发人员眼中的MySQL如下图所示导致在实际工作中碰到MySQL中死锁异常、SQL性能太差、异常报错等问题
读 MySQL 源码再看 INSERT 加锁流程
在之前的博客中,我写了一系列的文章,比较系统的学习了MySQL的事务、隔离级别、加锁流程以及死锁,我自认为对常见SQL语句的加
57张图,13个实验,干死 MySQL 锁!
前段时间写了一篇关于MySQL锁的文章,一些小伙伴们在阅读之后产生了一些疑问,这些问题还挺有代表性的,所以在这里做个实验,来用事实探究一番。那篇文章提到了记录锁(RecordLocks),顾名思义锁的是记录,作用在索引上的记录。锁是作用在索引上这句话可能不太好理解,并且对于在可重复读和读提交两个隔离
Mysql慢SQL分析及优化
为何对慢SQL进行治理从数据库角度看:每个SQL执行都需要消耗一定I/O资源,SQL执行的快慢,决定资源被占用时间的长短。假设总资源是100,有一条慢SQL占用了30的资源共计1分钟。那么在这1分钟时间内,其
MySQL 主从复制解决了什么问题?出现同步延迟如何解决?
主从复制解决的问题数据分布:通过复制将数据分布到不同地理位置负载均衡:读写分离以及将读负载到多台从库备份:可作为实时备份高可用性:利用主主复制实现高可用复制原理复制的原理其实很简单,仅分为以下三步:在主库上把数据更改记录到二进
9 张图总结一下 MySQL 架构
前言目前大部分的后端开发人员对MySQL的理解可能停留在一个黑盒子阶段。对MySQL基本使用没什么问题,比如建库、建表、建索引,执行各种增删改查。所有很多后端开发人员眼中的MySQL如下图所示导致在实际工作中碰到MySQL中死锁异常、SQL性能太差、异常报错等问题
Buffer Pool 为了让 MySQL 变快都做了什么?
前言大家好,我是阿星,又跟大家见面了。相信很多小伙伴在面试中都被问过「为什么要用缓存?」,大部分人都是回答:「减少数据库的磁盘IO压力」。但是MySQL真的有如此不堪吗?每次增删改查都要去走磁盘IO吗?今天就聊聊InnoDB对BufferPool的奇思妙想。Buff
MySQL 中删除的数据都去哪儿了?
不知道大家有没有想过下面这件事?我们平时调用DELETE在MySQL中删除的数据都去哪儿了?这还用问吗?当然是被删除了啊那么这里又有个新的问题了,如果在InnoDB下,多事务并发的情况下,如果事务A删除了id=1的数据,同时事务B又去读取id=1的数据,如果这条数据真的被删除了,那MVCC拿啥数据返
MySQL8.0索引新特性:颠覆了我对索引的认知
函数索引在MySQL8.0之前对条件字段做函数操作、或者做运算都将不会使用字段上的索引,例如下面的例子root@employees14:09:showindexfromemployees;+-----------+------------+----------+--------------+----
你向 MySQL 数据库插入 100w 条数据用了多久?
多线程插入(单表)问:为何对同一个表的插入多线程会比单线程快?同一时间对
阿里二面:怎么解决MySQL死锁问题的?
大家好,我是狼王,一个爱打球的程序员咱们使用MySQL大概率上都会遇到死锁问题,这实在是个令人非常头痛的问题。本文将会对死锁进行相应介绍,对常见的死锁案例进行相关分析与探讨,以及如何去尽可能避免死锁给出一些建议。话不多说,开整!什么是死锁死锁是并发系统中常见的问题,同样也会出现在数据库MySQL的并
如何解决:MySQL分页时使用 limit+order by 会出现数据重复问题
在MySQL中我们通常会采用limit来进行翻页查询,比如limit(0,10)表示列出第一页的10条数据,limit(10,10)表示列出第二页。但是,当limit遇到orderby的时候,可能会出现翻到第二页的时候
MySQL不会丢失数据的秘密,就藏在它的 7种日志里
进入正题前先简单看看MySQL的逻辑架构,相信我用的着。MySQL逻辑架构MySQL的逻辑架构大致可以分为三层:第一层:处理客户端连接、授权认证,安全校验等。第二层:服务器server层,负责对SQL解释、分析、优化、执行操作引擎等。第
MySQL慢查询记录原理和内容解析
本文并不准备说明如何开启记录慢查询,只是将一些重要的部分进行解析。如何记录慢查询可以自行参考官方文档:5.4.5TheSlowQueryLog本文使用了Percona版本开启来了参数log_slow_v
MySQL8.0索引新特性:颠覆了我对索引的认知
函数索引在MySQL8.0之前对条件字段做函数操作、或者做运算都将不会使用字段上的索引,例如下面的例子root@employees14:09:showindexfromemployees;+-----------+------------+----------
为什么 MySQL 不推荐默认值为 null ?
作者|guangsu.来源|https://blog.csdn.net/qq_30549099/article/details/107395521通常能听到的答案是使用了NULL值的列将会使索引失效,但是如果实际测试过一下,你就知道ISNULL会使用索引,所以上述说法有漏洞。着急的人拉到最下边看结论
MySQL 大批量插入,如何过滤掉重复数据?
文章转载:程序员老鬼线上库有6个表存在重复数据,其中2个表比较大,一个96万+、一个30万+,因为之前处理过相同的问题,就直接拿来了上次的Python去重脚本,脚本很简单,就是连接数据库,查出来重复数据,循环删除。emmmm,但是这个效率嘛,实在是太低了,1秒一条,重复数据大约2万+,预估时间大约在