-
Giới thiệu và khởi tạo môi trường MySQL
- Hướng dẫn cài đặt và cấu hình MySQL Server trên Windows cho kết nối từ xa
- Vận dụng tư duy phân tích dữ liệu với Mysql từ cơ bản đến nâng cao
- Vận dụng tư duy phân tích quản trị dữ liệu với MySQL
- Tối ưu hoá công việc quản trị với view và bảng tạm
- Tôi ưu hoá với thủ tục – procedure trong mysql
- Nhóm hàm windown
- Con trỏ và phân vùng trong mysql
- Làm việc với hàm tự tạo trong Mysql
- Làm việc với trigger trong Mysql
- Làm việc với giao dịch
- Tìm hiểu về truy vấn động
- Even – Sự kiện định kỳ trong Mysql
-
Quản trị dữ liệu trong doanh nghiệp
- Tổng quan về trục quản trị dữ liệu
- Quản trị & Giám sát hệ thống với cơ sở dữ liệu ảo information_schema
- Cấu hình và lưu trữ
- Cấu hình file my.ini
- An toàn và toàn vẹn dữ liệu – Bảo mật – Backup
- Hiệu năng và tối ưu hoá
- Đồng bộ và phục hồi
- Phân tích tối ưu hoá hiệu năng với dữ liệu bảng performance_schema
-
Chiến lược quản trị dữ liệu
Phân tích tối ưu hoá hiệu năng với dữ liệu bảng performance_schema
performance_schema trong MySQL là một “hệ thống đo nhịp tim” nội tại, ghi lại chi tiết các sự kiện, trạng thái, thời gian, khóa, bộ nhớ, I/O… của toàn bộ server.
Để hiểu và khai thác tốt, ta nên nắm rõ nhóm bảng — vì performance_schema có hơn 80 bảng, chia theo chức năng.
🧭 TỔNG QUAN: Các nhóm bảng trong performance_schema
| Nhóm | Chức năng chính | Ví dụ bảng tiêu biểu |
|---|---|---|
| 1. Setup Tables | Cấu hình & bật/tắt theo dõi (config) | setup_consumers, setup_instruments, setup_timers, setup_actors, setup_objects |
| 2. Current Event Tables | Trạng thái hiện tại của từng thread / session | events_waits_current, events_stages_current, events_statements_current |
| 3. History Tables | Lịch sử ngắn hạn của sự kiện (buffered) | events_waits_history, events_waits_history_long, events_statements_history |
| 4. Summary Tables | Tổng hợp thống kê theo nhiều tiêu chí (user, host, schema, event type, v.v.) | events_statements_summary_by_user_by_event_name, events_waits_summary_global_by_event_name, table_io_waits_summary_by_table |
| 5. Instance Tables | Thông tin “đối tượng” (mutex, rwlock, file, socket…) đang được theo dõi | mutex_instances, rwlock_instances, file_instances, socket_instances |
| 6. Thread & Connection Tables | Theo dõi các luồng, session, và tài nguyên gắn với user | threads, events_waits_summary_by_thread_by_event_name |
| 7. Memory Tables | Theo dõi phân bổ bộ nhớ theo component hoặc event | memory_summary_by_thread_by_event_name, memory_summary_global_by_event_name |
| 8. Stage & Statement Tables | Đo chi tiết thời gian từng giai đoạn / câu lệnh SQL | events_stages_summary_by_account_by_event_name, events_statements_summary_by_digest |
| 9. Metadata Lock Tables | Theo dõi khóa metadata (DDL, ALTER TABLE…) | metadata_locks |
| 10. File I/O Tables | Ghi nhận hoạt động đọc/ghi file | file_summary_by_instance, file_summary_by_event_name |
| 11. Mutex / Lock Wait Tables | Thống kê thời gian chờ khóa nội bộ | events_waits_summary_global_by_event_name, mutex_instances |
| 12. Account / Host / User Summary Tables | Tổng hợp hoạt động theo người dùng / host | accounts, users, hosts, events_statements_summary_by_user_by_event_name |
| 13. Replication Tables (MySQL 8+) | Theo dõi luồng replication | replication_applier_status_by_worker, replication_connection_status |
🧩 Ví dụ thực tế: Phân tích hiệu năng truy vấn
Muốn xem truy vấn nào tốn nhiều CPU nhất:
SELECT DIGEST_TEXT, COUNT_STAR, SUM_TIMER_WAIT/1000000000 AS total_ms
FROM performance_schema.events_statements_summary_by_digest
ORDER BY total_ms DESC
LIMIT 10;
Muốn xem I/O theo bảng:
SELECT OBJECT_SCHEMA, OBJECT_NAME, COUNT_READ, COUNT_WRITE
FROM performance_schema.table_io_waits_summary_by_table
ORDER BY COUNT_READ DESC
LIMIT 10;
⚙️ Lưu ý cấu hình
Trước khi khai thác, đảm bảo bạn đã bật performance_schema trong my.ini:
performance_schema = ON
Và nếu cần bật thêm các công cụ:
UPDATE performance_schema.setup_consumers
SET ENABLED = 'YES'
WHERE NAME LIKE '%events_statements%';
📚 Mẹo học nhanh:
Nếu muốn tự khám phá toàn bộ bảng và nhóm:
SELECT TABLE_NAME, TABLE_COMMENT
FROM information_schema.TABLES
WHERE TABLE_SCHEMA = 'performance_schema';
Hoặc lọc nhanh theo từ khóa:
SHOW TABLES FROM performance_schema LIKE '%memory%';
