MySQL 19 为什么我只查一行的语句,也执行这么慢?
有些情况下,“查一行”也会执行特别慢,今天就看看什么情况会出现这个现象。 如果MySQL本身有很大压力,导致数据库服务器CPU占有率很高或IO利用率很高,这种情况所有语句的执行都可能变慢,不...
MySQL 20 幻读是什么,幻读有什么问题?
首先给出要用到的数据: CREATE TABLE `t` ( `id` int(11) NOT NULL, `c` int(11) DEFAULT NULL, `d` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `c` (`c`) ) ENGINE=InnoDB; insert into ...
MySQL myisam引擎表crashed 修复:MySQL table is marked as crashed and last (automatic?) repair failed
某系统是一个非常老的MySQL从数据库,某天收到主从复制异常的报警,发现从节点的slave_sql_running线程断开,异常日志显示MySQL *** table is marked as crashed and last (automatic?) repair ...
误操作后快速恢复数据 binlog 解析为反向 SQL
误操作后快速恢复数据 binlog 解析为反向 SQL 1.前言 本文将介绍使用 reverse_sql 工具将 GreatSQL 数据库的 binlog 解析为反向 SQL 语句。模拟误操作后,恢复数据。该工具可以帮助客户在发生事...
MySQL 18 为什么这些SQL语句逻辑相同,性能却差异巨大?
在MySQL中,有很多看上去逻辑相同,但性能差异巨大的SQL语句。对这些语句使用不当的话,就会不经意导致整个数据库压力变大。本文选择了三个这样的案例。 案例一:条件字段函数操作 假设现在维护...
MySQL 17 如何正确地显示随机消息?
假设有一个场景,一个英语学习APP首页有一个随机显示单词的功能,用户每次访问首页的时候,都会随机滚动显示三个单词。 已知表里有10000条记录,来看看随机选择3个单词有什么方法,又存在什么问...
MySQL 16“order by”是怎么工作的?
假设要查询城市是“杭州”的所有人名字,并且按照姓名排序返回前1000个人的姓名与年龄。那么SQL语句可以写为: select city,name,age from t where city='杭州' order by name limit 1000; 本文...
MySQL 15 日志相关问题追问
先放一下两阶段提交的图,在后续问题中会用到: 问题 在MySQL 02中,讲到为什么要使用两阶段提交时用的是反证法,说明了如果不使用两阶段提交,会导致MySQL出现主备数据不一致等问题。 那么如果...
GreatSQL优化技巧:使用 FUNCTION 代替标量子查询
GreatSQL优化技巧:使用 FUNCTION 代替标量子查询 导语 本文案例涉及标量子查询,何为标量子查询呢?一般来说,介于 SELECT 与 FROM 之间的子查询就叫标量子查询,返回单行单列结果,可做为最外...
MySQL 14 count(*)这么慢,我该怎么办?
count(*)的实现方式 在不同的MySQL引擎中,count(*)有不同的实现方式: MyISAM引擎把一个表的总行数存在磁盘上,执行count(*)时能直接返回总行数,效率很高; InnoDB引擎需要把数据一行一行从引...