当MySQL表数据量较大时,通过 DELETE 语句清理数据并不会直接释放磁盘空间,仅会将数据库记录或数据页标记为可重用。若需要真正回收表空间并减少磁盘占用,可通过OPTIMIZE TABLE实现。 OPTIMIZE TABLE 是一个重要的命令,用于优化表的性能和空间利用。通过重新组织表的存储结构
1. 高可用背景 1.1 高可用概念 高可用(High Availability)是系统所能提供无故障服务的一种能力。简单地说就是避免因服务器宕机而造成的服务不可用。
MySQL的字符集比其他关系型数据库(如Oracle、SQL Server)更为复杂。在MySQL环境初期搭建时,未明确字符集和校对规则,后期会碰到一系列字符编码相关的问题。比如: 乱码; 数据截断; 排序异常; 多表Join,字符集不一致隐式转换导致索引失效; 字符集导致前后空格去掉,判断逻辑错误
Online DDL在MySQL 5.6才开始支持的,在5.5及之前版本,使用alter table/create index等命令进行表结构修改操作均会锁表,这在生产环境上明显是不可接受的。Online DDL(在线DDL)功能允许在表上执行DDL的操作(例如创建索引)的同时不阻塞并发的DML操作
MySQL 游标(Cursor)是一种数据库对象,用于逐行处理查询结果集。游标允许在存储过程中对查询结果进行逐行操作,这在需要对每一行进行复杂处理时非常有用。 游标的基本概念 声明游标:在存储过程或函数中,游标必须在所有变量声明之后进行声明。游标的声明指定了要执行的查询。 打开游标:在使用游标之前,
OPTIMIZE TABLE 语句在 MySQL 中用于优化表的存储和性能。具体来说,OPTIMIZE TABLE table; 的作用包括: 重组表数据和索引:通过重组表的数据文件和索引文件,释放未使用的空间。这对于频繁进行删除或更新操作的表特别有用,因为这些操作可能会导致表的碎片化。 更新表统计