MySQL 常用查询与优化技巧 Print

  • 23

掌握 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 整理碎片

Was this answer helpful?

« Back