char 与 varchar 区别 速查

CHAR 定长、不足补空格、取值去尾空格,最大 255;VARCHAR 变长、带 1~2 字节长度前缀、保留尾空格,n 指字符数,受行大小限制。长度固定选 CHAR,其余用 VARCHAR。
Alexer 发布于 

UNION 与 UNION ALL 区别 速查

UNION 合并结果并去重,UNION ALL 保留所有行不去重。两者都要求列数一致、类型兼容;允许重复时用 UNION ALL 更快。
Alexer 发布于 

MySQL 分页越查越慢原因 速查

分页越查越慢是因为 LIMIT 的 offset 太大:MySQL 得先扫过并丢弃前面所有行,二级索引还要逐行回表,排序无索引再加 filesort。改用 where id > 上一页最大 id 往下取,或用延迟关联先查主键再回表,就能稳住速度。
Alexer 发布于 

MVCC 基础概念 速查

MVCC 靠隐藏事务号、undo log 旧版本和 Read View 判断可见性,让普通 SELECT 走快照读不加锁,UPDATE 和 FOR UPDATE 走当前读加锁;READ COMMITTED 每次快照读新建 Read View,REPEATABLE READ 只在第一次建。
Alexer 发布于 

MySQL 字段改名语句 速查

改字段名用 ALTER TABLE ... CHANGE COLUMN,格式是旧名、新名、类型,类型要和原来一致,否则会顺带改类型。MySQL 8.0 起可用 RENAME COLUMN 旧名 TO 新名,只改名不带类型。多个字段可在一个 ALTER TABLE 里用逗号并列,一次改完,数据不受影响。
Alexer 发布于