摘要:
一、本文想解决什么问题 二、如何识别需要排序 三、如何利用索引优化排序 四、排序的几种模式 4.1、实际trace结果 4.2、排序模式概览 4.2.1、回表排序模式 4.2.2、不回表排序模式 4.2.3、打包数据排序模式 4.2.4、三种模式比较 五、外部排序 5.1、普通外部排序 5.1.1、 阅读全文
摘要:
前言 排序是数据库中的一个基本功能,MySQL也不例外。用户通过Order by语句即能达到将指定的结果集排序的目的,其实不仅仅是Order by语句,Group by语句,Distinct语句都会隐含使用排序。本文首先会简单介绍SQL如何利用索引避免排序代价,然后会介绍MySQL实现排序的内部原理 阅读全文
摘要:
《高性能MySQL》 里面提及用in这种方式可以有效的替代一定的range查询,提升查询效率,因为在一条索引里面,range字段后面的部分是不生效的(ps.需要考虑 ICP)。MySQL优化器将in这种方式转化成 n*m 种组合进行查询,最终将返回值合并,有点类似union但是更高效。 MySQL在 阅读全文
摘要:
背景 一般说MySQL的索引,都清楚其索引主要以B+树为主,此外还有Hash、RTree、FullText。本文简要说明一下MySQL的B+Tree索引,以及和其相关的二叉树、平衡二叉树、B-Tree,相关的知识网上很多,为了方便自己更快、清楚的了解,文本聚合一些内容以及个人的一些理解。 说明 二叉 阅读全文
摘要:
Docker 镜像是由多个文件系统(只读层)叠加而成。当我们启动一个容器的时候,Docker 会加载只读镜像层并在其上(镜像栈顶部)添加一个读写层。如果运行中的容器修改了现有的一个已经存在的文件,那该文件将会从读写层下面的只读层复制到读写层,该文件的只读版本仍然存在,只是已经被读写层中该文件的副本所 阅读全文
摘要:
近几年Docker非常的火热,各位开发者恨不得把所有的应用、软件都部署在Docker容器中,但是您确定也要把数据库也部署的容器中吗?这个问题不是子虚乌有,因为在网上能够找到很多各种操作手册和视频教程,这里整理了一些数据库不适合容器化的原因供大家参考,同时也希望大家在使用时能够谨慎一点。目前为止将数据 阅读全文
摘要:
在使用、学习MySQL的时候我们需要下载不同的版本的MySQL ,之前我们可以使用sandbox 快速搭建单节点或者一主多从的数据库。现在可以尝试使用 docker 利用已经存在的镜像迅速搭建一个单实例的数据库。 搜索仓库 docker仓库拉取 mysql 8.0.22 选择 star最多的MySQ 阅读全文
摘要:
RC级别: create table t1(id int primary key, name varchar(30));insert into t1 values(1, 'a'),(4, 'c'),(7, 'b'),(10, 'a'),(20, 'd'),(30, 'b');commit; 案例一 阅读全文
摘要:
一 前言 之前的文章里面总结了很多死锁案例,其实里面有几篇文章对于insert加锁流程表述的不准确,而且微信公众号又无法修改,所以通过本文重新梳理insert加锁流程,最后加上一个死锁案例解析。 有个勤奋好学的同事特地找我咨询insert并发导致死锁的问题,我不方便说他的名字,就叫他鲁震宇吧,本文也 阅读全文
摘要:
一 ss 是什么 ss 全称是Socket Statistics,用于显示各种socket的信息,ss命令功能和netstat类似,ss的优势在于它显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。ss 命令可以提供如下信息: 所有的TCP sockets所有的UDP s 阅读全文
摘要:
CREATE TABLE `t8` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `d_id` varchar(40) NOT NULL DEFAULT '', `b_id` varchar(40) NOT NULL DEFAULT '', `is_dropp 阅读全文