-
物理拷贝的方式速度最快
尤其对于大表拷贝来说是最快的方法。如果出现误删表的情况,用备份恢复出误删之前的临时库,然后再把临时库中的表拷贝到生产库上,是恢复数据最快的方法。但是,这种方法的使用也有一定的局限性:必须是全表拷贝,不能只拷贝部分数据;需要到服务器上拷贝数据,在用户无法登录数据库主机的场景下无法使用;由于是通过拷贝物理文件实现的,源表和目标表都是使用 InnoDB 引擎时才能使用。
主要介绍Multi-Range Read 优化 (MRR)。这个优化的主要目的是尽量使用顺序读盘。
- BKA 优化是 MySQL 已经内置支持的,建议你默认使用;
- BNL 算法效率低,建议你都尽量转成 BKA 算法。优化的方向就是给被驱动表的关联字段加上索引;
- 基于临时表的改进方案,对于能够提前过滤出小数据的 join 语句来说,效果还是很好的;
由于 MySQL 采用的是边算边发的逻辑,因此对于数据量很大的查询结果来说,不会在 server 端保存完整的结果集。
所以,如果客户端读结果不及时,会堵住 MySQL 的查询过程,但是不会把内存打爆。
而对于 InnoDB 引擎内部,由于有淘汰策略,大查询也不会导致内存暴涨。
主要介绍了kill命令的执行逻辑流程,并不是简单直接结束命令(kill connection id;kill query id)
另外解释了两个误解:
- 如果库里的表特别多,客户端连接会很慢。
主要介绍了几种误删数据的操作及恢复方案,并提出预防误删的方案:
- 使用 delete 语句误删数据行
- 使用 drop table 或者 truncate table 语句误删数据表;
- 使用 drop database 语句误删数据库;
主要介绍了如何判断一个mysql数据库是否健康 原文:https://time.geekbang.org/column/article/781
之前都在介绍主备,一主一备,本篇主要介绍一主多从(一主一备多从),在主库出问题后,如何切换到备库,并将从库设置master指向到新的主库(原
主要介绍了为什么备库会延迟好几个小时,及mysql目前常用的5.6,5.7等几个版本的并行复制策略 原文:https://time.geekb