MySQL性能优化
文章平均质量分 87
Ronbay(偶像)
我不喜欢庸俗而又平凡的一生,总想做什么,做点有意义的事情,让更多人知道自己最起码在这个世上来过......
展开
-
误删数据后除了跑路,还能怎么办
背景:只要有数 据操作权限的同学,都有可能踩到误删数据这条线。为了找到解决误删数据的更高效的方法,我们需要先对和MySQL相关的误删数据,做下分类:1. 使用delete语句误删数据行;2. 使用droptable或者truncatetable语句误删数据表;3. 使用dropdatabase语句误删数据库;4. 使用rm命令误删整个MySQL实例。下面分别介绍:1.误删行如果是使用delete语句误删了数据行,可以用Flashback工具通过闪 回把数据恢复回来。Flash原创 2022-05-26 12:00:52 · 295 阅读 · 0 评论 -
如何判断一个数据库是不是出问题了?
1.select 1判断实际上,select 1成功返回,只能说明这个库的进程还在,并不能说明主库没问题。现在,我们来看一下这个场景。set global innodb_thread_concurrency=3;CREATE TABLE `t` ( `id` int(11) NOT NULL, `c` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB;insert into t values(1,1)...原创 2022-05-25 12:43:15 · 1572 阅读 · 0 评论 -
MySQL的两个原则,两个优化,一个bug
背景:因为间隙锁在可重复读隔离级别下才有效,所以本篇文章接下来的描述,若没有特殊说明,默认 是可重复读隔离级别。1.加锁规则里面,包含了两个“原则”、两个“优化”和一个“bug”。(1). 原则1:加锁的基本单位是next-keylock。希望你还记得,next-keylock是前开后闭区间。(2).原则2:查找过程中访问到的对象才会加锁。(3)优化1:索引上的等值查询,给唯一索引加锁的时候,next-keylock退化为行锁。(4)优化2:索引上的等值查询,向右遍历时且最后一个值不满足原创 2022-05-21 11:14:38 · 368 阅读 · 1 评论 -
只查一行的语句,执行也很慢,原因分析
为了便于描述,我还是构造一个表,基于这个表来说明今天的问题。这个表有两个字段id和c, 并且我在里面插入了10万行记录。CREATE TABLE `t` ( `id` int(11) NOT NULL, `c` int(11) DEFAULT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB;delimiter ;;create procedure idata()begin declare i int; set i=1; while(i&...原创 2022-05-20 18:39:18 · 130 阅读 · 0 评论 -
“order by”的工作流程及优化
假设表的定义是这样子的CREATE TABLE `t` ( `id` int(11) NOT NULL, `city` varchar(16) NOT NULL, `name` varchar(16) NOT NULL, `age` int(11) NOT NULL, `addr` varchar(128) DEFAULT NULL, PRIMARY KEY (`id`), KEY `city` (`city`)) ENGINE=InnoDB;这时,你的SQL语...原创 2022-05-20 10:14:54 · 70 阅读 · 0 评论