快速搭建含监控的 MySQL 慢查询演练环境。
生成 1000 万行测试数据,制造慢 SQL,并用 Prometheus + Grafana 实时观察。
docker-compose.yml # 一键启动所有服务
prometheus.yml # Prometheus 抓 mysqld-exporter
generate_big_users.py # 生成 1000 万行 CSV
load_data.sql # 建表 + 导入 + 索引
slow_queries.sql # 几条示例慢 SQL
- 启动服务
docker compose up -d
- 生成数据
python3 generate_big_users.py
mkdir -p mysql-files
mv big_users.csv mysql-files/
- 导入数据
docker exec -it slow-mysql mysql -uroot -prootpass < load_data.sql
- 跑慢 SQL
docker exec -it slow-mysql mysql -uroot -prootpass testdb < slow_queries.sql
- 监控
- Prometheus: http://localhost:9090
- Grafana: http://localhost:3000 (默认 admin / admin)
查看 slow-query.log
文件验证慢查询;或在 Grafana 导入 MySQL / Prometheus dashboards 观察 QPS、IO、CPU。
innodb_buffer_pool_size=256M
人为缩小,以确保 1000 万行数据无法全部驻留内存。- 若磁盘较小,可修改 TOTAL 行数降低数据量。