分库分表实战之从根上带你吃透MySQL的索引
问题分析:为什么查询变慢呢? 接上期,我们知道了MySQL查询的全过程,也知道了整个过程的瓶颈在于磁盘IO,那怎么降低磁盘IO次数呢? 答案就是索引。 正确的使用索引,我们就能...
问题分析:为什么查询变慢呢? 接上期,我们知道了MySQL查询的全过程,也知道了整个过程的瓶颈在于磁盘IO,那怎么降低磁盘IO次数呢? 答案就是索引。 正确的使用索引,我们就能...
“不要使用SELECT *”几乎已经成为了MySQL使用的一条金科玉律,就连《阿里Java开发手册》也明确表示不得使用*作为查询的字段列表,更是让这条规则拥有了权威的加持。 不过我在开...
这篇文章会让大家清楚地明白: 什么是InnoDB行格式?InnoDB页是什么? InnoDB页和InnoDB行格式都有哪些字段信息? 为什么推荐使用自增ID作为主键,而不推...
在事务的ACID特性中,原子性(A)、一致性(C)、持久性(D)由undo log和redo log实现,隔离性(I)由锁+MVCC实现 undo log:事务还没有commit,中途执行异...
前言: 在数据读多写少的情况下作为缓存来使用,恐怕是Redis使用最普遍的场景了。当使用Redis作为缓存的时候,一般流程是这样的。 如果缓存在Redis中存在,即缓存命中,则直接...
一.索引的类型与常见的操作 前缀索引 MySQL 前缀索引能有效减小索引文件的大小,提高索引的速度。但是前缀索引也有它的坏处:MySQL 不能在 ORDER BY 或 GROUP BY...
前言 事务隔离级别的实现原理:简单来说就是各种锁机制和MVCC多版本并发控制 我们学习知识的时候,需要了解知识点出现的原因,什么情况下能用到这个知识 我们说到事务,就得说到事务的AC...
1、查看虚拟机的ip 在虚拟机打开终端,输入命令 ? 1 ifconfig 2、...
前言 在业务迭代中,随着数据量的上升,会出现慢SQL情况,但是当我们去分析单条SQL的时候,发现其执行速度并没有那么慢,原因是什么呢,那么就可能是RDS服务器IO产生了瓶颈。 日常,我们...
一、前言 1、buffer pool是什么 咱们在使用mysql的时候,比如很简单的select * from table;这条语句,具体查询数据其实是在存储引擎中实现的,数据库中...
故障表现 一方面 :在阿里云控制台云数据库PolarDB对应的集群管理页面上,在诊断与优化模块里面的一键诊断会话管理中,发现某条update sql 执行时间非常久且非常频繁;...
1、什么是死锁? 死锁指的是在两个或两个以上不同的进程或线程中,由于存在共同资源的竞争或进程(或线程)间的通讯而导致各个线程间相互挂起等待,如果没有外力作用,最终会引发整个系统崩溃。 2...
一、检测通信 查看master(centos7)和slave(win10)的ip地址,并检测是否可以相互通信 到这里我们知道,master的ip为192.168....
SQL语句执行顺序 设置大小写不敏感 查看大小写是否敏感:show variables like '%lower_case_table_names%'; w...
一、MySQL Server层日志简介 一个mysql client发起一个连接请求,处理请求的过程如下图所示: MySQL日志是在MySQL server上生成的,不管更改哪个存...
我们在使用MySQL数据库的时候,偶尔会遇到com.mysql.jdbc.exceptions.jdbc4.CommunicationsException,为了以后能够更快速的定位解决该问题,下...
摘要:Read Committed事务运行期间,只要别的事务修改数据并提交,即可读到人家修改的数据,所以会有不可重复读、幻读问题。ReadView机制基于undo log版本链条实现的一套读视图...
前言 本文总结了mysql中DCL,常用的一些权限控制,后续使用到其他会继续补充。 一、用户控制管理 创建用户 ? 1...
一、mysql和程序实例 1.1 建表 要说明这个问题,我们首先来建立三张表 分别是user_auto_key,user_uuid,user_random_key,分别表示自动增长的...
引言 数据库性能优化是每个后端程序猿必备的基础技能之一,而Mysql中的explain堪称Mysql的性能优化分析神器,我们可以通过它来分析SQL语句的对应的执行计划在Mysql底层到底是如...
1、下载 官网:https://dev.mysql.com/downloads/installer/ 2、安装 (1)双击 mysql-installer-c...
mysql是开源免费的关系型数据库,由于其是免费的,所以使用也是比较广泛的。 mysql数据库的空分为两种:Null、空字符串 本文将针对这些空演示如何判断是否为空,以及如何写sql过滤...
索引是一种特殊的数据库结构,被设计用来快速查询数据库表中的特定记录。索引有多种类型,就像字典有拼音查找和偏旁查找一样都是为了提高检索效率。MySQL中最常见的索引类型有B+树索引 ...
1、登录mysql mysql -uroot -p 2、先查询都有哪些用户 select host,user from mysql.user; 红色箭头是主管理...
一、sqlSession简单介绍 拿到SqlSessionFactory对象后,会调用SqlSessionFactory的openSesison方法,这个方法会创建一个Sql执行器(E...
一、InnoDB表级锁 我们知道,InnoDB是支持行锁,但不是每次都获取行锁,如果不使用索引的,那还是获取的表锁。而且有的时候,我们希望直接去使用表锁 在绝大部分情况下都应该使用行锁,...
前言 mysql默认安装的时候是有一个root用户,这个用户有最高权限,如果要开放数据库里面的数据给别人使用的话,一般是不会开放root用户给别人的,正常会创建新的用户给别人使用,这个用户的...
业务场景 使用elasticsearch作为全文搜索引擎,对标题、内容等,实现智能搜索、输入提示、拼音搜索等 elasticsearch索引与数据库数据不一致,导致搜索到不应被搜...
什么是Undo Log? Undo:意为撤销或取消,以撤销操作为目的,返回某个状态的操作。 Undo Log:数据库事务开始之前,会将要修改的记录放到Undo日志里,当事务回滚时或...
这个时候,我们通过各种百度和Google,然后加上自己的理解,终于搞明白了MySQL一次查询的全过程了。 首先,用户想要查询订单数据时,会先发送一个查询请求,如下图所示: 可以看到...
前言 最近在项目中发现一个小问题,数据被更改时,插入记录和更新记录的时间会被同步更新。设置的两个时间create_time、update_time,按照预期来讲,应该是创建记录的时候会同步更...
窗口函数形如: 表达式 OVER (PARTITION BY 分组字段 ORDER BY 排序字段) 有两个能力: 当表达式为 rank() dense_rank()...
松哥之前写过文章跟大家介绍过用 MyCat 实现 MySQL 的分库分表,不知道有没有小伙伴研究过,MySQL 其实也自带了分区功能,我们可以创建一个带有分区的表,而且不需要借助任何外部工具,今...
一、概述 mysql主从是常用的高可用架构之一,也是使用最广泛的的系统架构。在生产环境中mysql主从复制有时会出现复制错误问题。MySQL主从复制中的问题(Coordinator stop...
1.假如有下述表格 mytabe 字段1 username 字符串型(姓名) 字段2 age  ...
前言: 我们都知道互联网数据有个特性,大部分场景都是 读多写少,比如:微博、微信、淘宝电商,按照 二八原则,读流量占比甚至能达到 90%。 结合这个特性,我们对底层的数据库架构也会做相应...
一、限制查询 我们通过limit可以限制返回结果的行数 select * from 表名 limit count; select * from users limit 3;...
一、条件查询 利用where语句可以对数据进行筛选 select * from 表名 where 条件; 二、比较运算符...
众所周知,数据库中INSERT INTO语法是append方式的插入,而最近在处理一些客户数据导入场景时,经常遇到需要覆盖式导入的情况 常见的覆盖式导入主要有下面两种: 1、部分覆盖:新...
数据准备 ON DUPLICATE KEY UPDATE insert into test_table(id,username) VALUES(4,"fukaiit") ON D...
一、插入数据 insert into 表名 (列1,...) values(值1,...) 缺省插入: INSERT INTO users (name, birt...
insert 存在即不插入语法 介绍三种方式 第一种:replace into ? 1 2 3 repla...
一、表命令 1.查看所有表 show tables; 2.创建表 CREATE TABLE table_name ( &...
对于当前数据库的监控方式有很多,分为数据库自带、商用、开源三大类,每一种都有各自的特色;而对于 MySQL 数据库由于其有很高的社区活跃度,监控方式更是多种多样,不管哪种监控方式最核心的就是监控...
数据插入覆盖和时间戳问题 1.数据插入问题 当我们insert数据时,插入datetime类型,此类型的字段,存储数据格式为: YYYY-MM-DD,它支持的范围为'1...
1.切记不要用字符串存储日期 字符串占用的空间更大! 字符串存储的日期比较效率比较低(逐个字符进行比对),无法用日期相关的 API 进行计算和比较。 2.Datetime 和...
一、更新 UPDATE 表名 SET 字段1 = 值1, 字段2 = 值2,... WHERE 条件; 把id为12所对应的名字改为老哈: update users SET...
1.创建学生表 create table tbl_stu ( id int not null primary key auto_increment, name varchar...
一、创建多对多 1.学生表 ? 1 2 3 4 5 6 7 create table student...