| 高级查询 | 多表关联查询(内连接) | SELECT a.name, b.order_no FROM user a **INNER JOIN** order b ON a.id = b.user_id; | INNER JOIN 只返回两表匹配的数据,也可用 JOIN 简写 |
| 高级查询 | 多表关联查询(左连接) | SELECT a.name, b.order_no FROM user a **LEFT JOIN** order b ON a.id = b.user_id; | LEFT JOIN 保留左表所有数据,右表无匹配则为 NULL |
| 高级查询 | 子查询(IN) | SELECT * FROM user WHERE id **IN** (SELECT user_id FROM order WHERE amount>100); | IN 子查询,适合小数据集;大数据集用 JOIN 更高效 |
| 高级查询 | 条件过滤(HAVING) | SELECT age, COUNT(*) FROM user GROUP BY age **HAVING** COUNT(*)>5; | HAVING 过滤分组后的数据(WHERE 过滤分组前) |
| 用户权限细化 | 回收用户权限 | REVOKE **DELETE** ON db_name.* FROM 'user1'@'localhost'; | REVOKE 撤销指定权限,需 FLUSH PRIVILEGES 生效 |
| 用户权限细化 | 修改用户密码 | ALTER USER 'user1'@'localhost' **IDENTIFIED BY** 'new_password'; | MySQL8.0+ 推荐用 ALTER USER,5.7 可用 SET PASSWORD |
| 用户权限细化 | 删除用户 | DROP USER **IF EXISTS** 'user1'@'localhost'; | IF EXISTS 避免删除不存在的用户报错 |
| 表维护 | 优化表(整理碎片) | OPTIMIZE **TABLE** tb_name; | 针对 InnoDB/MyISAM 表整理碎片,释放磁盘空间(需锁表,低峰执行) |
| 表维护 | 重命名字段 | ALTER TABLE tb_name **RENAME COLUMN** old_col TO new_col; | MySQL8.0+ 支持,低版本需先 MODIFY 再 DROP 旧字段 |
| 表维护 | 复制表结构(不含数据) | CREATE TABLE new_tb **LIKE** old_tb; | LIKE 复制原表所有结构(索引、约束等) |
| 表维护 | 复制表结构 + 数据 | CREATE TABLE new_tb SELECT * FROM old_tb **WHERE 1=2**; | WHERE 1=2 只复制结构;去掉则复制结构 + 数据 |
| 日志管理 | 开启慢查询日志 | SET GLOBAL **slow_query_log** = 1; | 临时开启(重启失效),永久生效需改 my.cnf 配置 |
| 日志管理 | 设置慢查询阈值 | SET GLOBAL **long_query_time** = 1; | 执行时间超过 1 秒的 SQL 会被记录到慢查询日志(默认 10 秒) |
| 日志管理 | 查看二进制日志(binlog) | SHOW **BINARY LOGS**; | 查看 binlog 文件列表,用于数据恢复/主从同步 |
| 变量配置 | 查看全局变量 | SHOW **GLOBAL VARIABLES** LIKE 'max_connections'; | 查看 MySQL 全局配置(如最大连接数) |
| 变量配置 | 修改会话变量 | SET **SESSION** sort_buffer_size = 1024*1024; | 仅对当前连接生效,不影响其他会话 |
| 变量配置 | 查看当前会话状态 | SHOW **SESSION STATUS** LIKE 'Threads%'; | 查看当前会话的资源使用、连接数等状态 |
| 数据导入导出 | 导出指定表数据(CSV) | SELECT * FROM tb_name INTO **OUTFILE** '/tmp/tb_data.csv' FIELDS TERMINATED BY ','; | 导出为 CSV 文件,需确保 MySQL 有文件写入权限 |
| 数据导入导出 | 导入 CSV 数据到表 | LOAD **DATA INFILE** '/tmp/tb_data.csv' INTO TABLE tb_name FIELDS TERMINATED BY ','; | 批量导入 CSV 数据,比 INSERT 高效 |
| 锁与事务 | 设置事务隔离级别 | SET **TRANSACTION ISOLATION LEVEL** READ COMMITTED; | 常用级别:READ COMMITTED(默认)、REPEATABLE READ、SERIALIZABLE |
| 锁与事务 | 查看事务等待锁 | SELECT * FROM **INFORMATION_SCHEMA.INNODB_LOCK_WAITS**; | 定位事务锁等待问题,排查死锁 |