掌握 SQL 查询和优化技巧能显著提升数据库性能。
常用管理查询
-- 查看所有数据库 SHOW DATABASES; -- 查看所有表 SHOW TABLES; -- 查看表结构 DESCRIBE users; SHOW CREATE TABLE users; -- 查看当前进程 SHOW FULL PROCESSLIST; -- 查看数据库大小 SELECT table_schema, ROUND(SUM(data_length+index_length)/1024/1024,2) AS size_mb FROM information_schema.tables GROUP BY table_schema;
索引优化
-- 查看索引 SHOW INDEX FROM orders; -- 创建索引 CREATE INDEX idx_user_id ON orders(user_id); -- 组合索引 CREATE INDEX idx_user_status ON orders(user_id, status); -- 删除索引 DROP INDEX idx_user_id ON orders;
慢查询分析
在 my.cnf 中启用慢查询日志:
slow_query_log = 1 slow_query_log_file = /var/log/mysql/slow.log long_query_time = 2
EXPLAIN 使用
EXPLAIN SELECT * FROM orders WHERE user_id = 123; -- 关注 type、rows、Extra 字段
优化建议
- 为 WHERE、JOIN、ORDER BY 中的字段建立索引
- 避免使用 SELECT *,只查询需要的字段
- 使用 LIMIT 分页,避免大数据量查询
- 合理使用 JOIN 替代子查询
- 定期使用 OPTIMIZE TABLE 整理碎片