跑了4个实验,实战讲解 MySQL的行锁、间隙锁...
今天跟大家聊一聊MySQL的事务隔离,并通过一些实验做了些总结。光说不练,假把式,没有经过实践就没有话语权。我们都知道数据库有四种隔离级别,分别是:读未提交(READUNCOMMITTED)读已提交(READCOMMITTED)可重复读(REPEATABLEREAD)串行化(SERIALIZABLE
MySQL 这样写 UPDATE 语句,劝退
最近好几次有开发同学在钉钉上问我,比如下图:问题归纳起来就是:在MySQL里面update一条记录,语法都正确的,但记录并没有被更新...刚遇到这个问题的时候,我拿到这条语句直接在测试库里面执行了一把,发现确实有问题,但和开发描述的还是有区别,这里我用测试数据来模拟下:有问题的SQL语句
坑,MySQL中 Order by 与 Limit 混用,分页有BUG!
在MySQL中我们常常用orderby来进行排序,使用limit来进行分页,当需要先排序后分页时我们往往使用类似的写法select*from表名orderby排序字段limtM,N。但是这种写法却隐藏着较深的使用陷阱。在排序字段有数据重复的情况下,会很容易出现排序结果与预期不一致的问题。比
MySQL 跨库分页/ 分表分页/ 跨库分页,为什么这么难?
来源:https://www.cnblogs.com/yjmyzz/p/12149737.html当业务数据达到一定量级(比如:mysql单表记录量>1千万)后,通常会考虑“分库分表”将数据分散到不同的库或表中,这样可以大大提高读/写性能。但是问题来了,对于select*fromtableli
MySQL 跨库分页/ 分表分页/ 跨库分页,为什么这么难?
当业务数据达到一定量级(比如:mysql单表记录量>1千万)后,通常会考虑“分库分表”将数据分散到不同的库或表中,这样可以大大提高读/写性能。但是问题来了,对于select*fromtableli
如果 Mysql 磁盘满了,会发生什么?还真被我遇到了~
使用命令发现磁盘使用率为100%了,还剩几十兆。一系列神操作备份数据库,删除实例、删除数据库表、重启mysql服务,结果磁盘空间均没有释放。怎么办网上查了很多资源,说要进行磁盘碎片化整理。原因是datafree占据的空间太多啦。具体可以通过这个sq
MySQL 定时备份数据库(非常全)
在操作数据过程中,可能会导致数据错误,甚至数据库奔溃,而有效的定时备份能很好地保护数据库。本篇文章主要讲述了几种方法进行MySQL定时备份数据库。一.mysqldump命令备份数据在
公司用的 MySQL 团队开发规范,太详细了,建议收藏!
数据库对象命名规范数据库对象数据库对象是数据库的组成部分,常见的有以下几种:表(Table)、索引(Index)、视图(View)、图表(Diagram)、缺省值(Default)、规则(Rule)、触发器(Trigger)、存储过程(Stored
MySQL 性能优化的 9 种知识,面试再也不怕了!
1、选择最合适的字段属性Mysql是一种关系型数据库,可以很好地支持大数据量的存储,但是一般来说,数据库中的表越小,在它上面执行的查询也就越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度舍得尽可能小。例如:在
图解 MySQL 面试题 —— 容灾篇
不多说,直接发车!今天我们要讲的就是MySQL的容灾。容灾一直是后台开发中的重点,如果是线上服务出了问题,没有合适的容灾机制,那么对业务来说一定会是个沉重的打击,但是容灾同时也是拉开能力差距的难点,需要有强劲的实力才能把握住。不知道阿柴能不能经受住这样的考验。现在,就让我们继续开启这场沉浸式面试吧。
这篇 MySQL 索引和 B+Tree 讲的太通俗易懂!
正确的创建合适的索引,是提升数据库查询性能的基础。在正式讲解之前,对后面举例中使用的表结构先简单看一下:createtableuser(idbigintnotnullcom
MySQL 用 limit 为什么会影响性能?
一,前言首先说明一下MySQL的版本:mysql>selectversion();+-----------+|version()|+-----------+|5.7.17|+-----------+1rowinset(.00sec)表结构:mysql>desctest;+--------
公司用的 MySQL 团队开发规范,太详细了,建议收藏!
数据库对象命名规范数据库对象数据库对象是数据库的组成部分,常见的有以下几种:表(Table)、索引(Index)、视图(View)、图表(Diagram)、缺省值(Default)、规则(
云上 MySQL 的这 8 个要点,运维要了解一下
使用云上的MySQL时,会遇到很多人询问CDB的为了更好的了解云上的MySQL,本文将介绍一些重要的知识点。实例类型目前云数据库MySQL支持三种架构:基础版、高可用版、单节点高IO版。基础版是单个节点部署,价格低,性价比非常高,由于是单节点,数据安全性以及可用性不能保证,不建议生产环境使用高可用版
MySQL 中的 INSERT 是怎么加锁的?
来源:https://www.aneasystone.com/archives/2018/06/insert-locks-via-mysql-source-code.html看到热心网友在评论中提出的一个问题,我还是彻底被问蒙了。他的问题是这样的:加了插入意向锁后,插入数据之前,此时执行了selec
MySQL 基本知识点梳理和查询优化
目录一、索引相关二、EXPLIAN中有用的信息三、字段类型和编码四、SQL语句总结五、踩坑六、千万大表在线修改七、慢查询日志八、查看sql进程和杀死进程九、一些数据库性能的思考本文主要是总结了工作中一些常用的操作,以及不合理的操作,
如果MySQL的自增 ID 用完了,怎么办?
作者|方志朋来源|https://mp.weixin.qq.com/s/Yqo5PaTtQcQTn4p8BE6SGg如果你用过或了解过MySQL,那你一定知道自增主键了。每个自增id都是定义了初始值,然后按照指定步长增长(默认步长是1)。虽然,自然数是没有上限的,但是我们在设计表结构的时候,通常都会
select......for update会锁表还是锁行?
中文详细注释的开源项目RPC框架Dubbo源码解析网络应用框架Netty源码解析消息中间件RocketMQ源码解析数据库中间件
窥探 MySQL 索引
MySQL索引1.什么是数据库索引在关系数据库中,如果有上万甚至上亿条记录,在查找记录的时候,想要获得非常快的速度,就需要使用索引。索引是关系数据库中对某一列或多个列的值进行预排序的数据结构,在MySQL中也被称为Key。通过使用索引,可以让数据库系统不必扫描整个表,而是直接定位到符合条
MySQL 用 limit 为什么会影响性能?
一,前言首先说明一下MySQL的版本:mysql>selectversion();+-----------+|version()|+-----------+|5.7.17|+-----------+1rowinset(.00sec)表结构:mysql>desctest;+--------