丁奇老师的mysql实战45讲聚合页面,建议到极客购买丁奇老师的这门课程。
本文作为文章索引,只供学习研究。
数据库系统作为一个可能需要 7*24 小时全年无休的服务,考虑这些边界是非常有必要的。每种自增 id 有各自的应用场景,在达到上限后的表现也不同:
主要介绍了 MySQL 用户权限在数据表和内存中的存在形式,以及 grant 和 revoke 命令的执行逻辑。grant 语句会同时修改数据表和内存,判断权限的时候使用的是内存数据。因此,规范地使用 grant 和 revoke 语句,是不需要随后加上 flush privileges 语句的。
flush privileges 语句本身会用数据表的数据重建一份内存权限数据,所以在权限数据可能存在不一致的情况下再使用。而这种不一致往往是由于直接用 DML 语句操作系统权限表导致的,所以我们尽量不要使用这类语句。
主要介绍Multi-Range Read 优化 (MRR)。这个优化的主要目的是尽量使用顺序读盘。
由于 MySQL 采用的是边算边发的逻辑,因此对于数据量很大的查询结果来说,不会在 server 端保存完整的结果集。
所以,如果客户端读结果不及时,会堵住 MySQL 的查询过程,但是不会把内存打爆。
而对于 InnoDB 引擎内部,由于有淘汰策略,大查询也不会导致内存暴涨。
主要介绍了kill命令的执行逻辑流程,并不是简单直接结束命令(kill connection id;kill query id)
另外解释了两个误解:
主要介绍了几种误删数据的操作及恢复方案,并提出预防误删的方案: