-
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
Quản trị & Giám sát hệ thống với cơ sở dữ liệu ảo information_schema
Quản trị – Giám sát hệ thống CSDL MySQL
Liệt kê toàn bộ các bảng hệ thống trong schema INFORMATION_SCHEMA của MySQL, đây là “bộ não” của hệ quản trị, chứa siêu dữ liệu (metadata) mô tả mọi thứ trong hệ thống: cấu trúc, phân quyền, index, ràng buộc, engine, event, v.v.
🧭 1️⃣. Khái niệm tổng quan
INFORMATION_SCHEMA là cơ sở dữ liệu ảo chứa thông tin mô tả:
- Tên bảng, cột, kiểu dữ liệu
- Index, khóa, ràng buộc
- Quyền truy cập, vai trò
- Cấu trúc engine (InnoDB, MyISAM, v.v.)
- Thông tin tiến trình, cấu hình, plugin
👉 Khi cô hoặc học viên truy vấn:
SELECT * FROM INFORMATION_SCHEMA.TABLES;
thì MySQL không đọc dữ liệu người dùng, mà đọc thông tin mô tả (metadata) về cấu trúc dữ liệu.
🧱 2️⃣. Phân nhóm & Giải thích nội dung các bảng chính
Để dễ học, ta chia toàn bộ danh sách của nội dung các bảng dữ liệu trong cơ sở dữ liệu thành 7 nhóm chức năng chính.
Dưới đây là phần diễn giải, vai trò và ví dụ truy vấn cho từng nhóm.
🟦 NHÓM 1: THÔNG TIN CẤU TRÚC CƠ SỞ DỮ LIỆU
| Bảng | Ý nghĩa | Ví dụ sử dụng |
|---|---|---|
| SCHEMATA | Danh sách các CSDL (database) trên server | SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA; |
| TABLES | Danh sách bảng và engine của từng bảng | SELECT TABLE_NAME, ENGINE FROM INFORMATION_SCHEMA.TABLES; |
| COLUMNS | Mô tả chi tiết từng cột trong bảng | SELECT COLUMN_NAME, DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='khobac'; |
| PARTITIONS | Thông tin chia partition của bảng | SELECT * FROM INFORMATION_SCHEMA.PARTITIONS; |
| VIEWS | Danh sách view trong hệ thống | SELECT TABLE_NAME FROM INFORMATION_SCHEMA.VIEWS; |
📌 Ứng dụng: Kiểm tra cấu trúc nhanh của database, hỗ trợ công tác kiểm toán & giám sát cấu hình.
🟩 NHÓM 2: QUẢN LÝ QUYỀN & VAI TRÒ NGƯỜI DÙNG
| Bảng | Ý nghĩa | Ví dụ |
|---|---|---|
| USER_PRIVILEGES | Quyền của từng user trên toàn hệ thống | SELECT * FROM INFORMATION_SCHEMA.USER_PRIVILEGES; |
| SCHEMA_PRIVILEGES | Quyền của user trên từng schema | SELECT * FROM INFORMATION_SCHEMA.SCHEMA_PRIVILEGES; |
| TABLE_PRIVILEGES, COLUMN_PRIVILEGES | Quyền truy cập ở mức bảng/cột | SELECT * FROM INFORMATION_SCHEMA.TABLE_PRIVILEGES; |
| APPLICABLE_ROLES, ENABLED_ROLES, ADMINISTRABLE_ROLE_AUTHORIZATIONS | Liệt kê vai trò (role) mà người dùng được phép bật | SELECT * FROM INFORMATION_SCHEMA.APPLICABLE_ROLES; |
📌 Ứng dụng: Xây dựng bảng kiểm tra phân quyền định kỳ cho người dùng hệ thống (đặc biệt quan trọng trong môi trường Kho bạc).
🟧 NHÓM 3: RÀNG BUỘC & KHÓA
| Bảng | Ý nghĩa | Ví dụ |
|---|---|---|
| TABLE_CONSTRAINTS, KEY_COLUMN_USAGE | Thông tin khóa chính (PK), khóa ngoại (FK), unique | SELECT * FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS; |
| REFERENTIAL_CONSTRAINTS | Quan hệ giữa các bảng qua khóa ngoại | SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS; |
| CHECK_CONSTRAINTS | Các điều kiện kiểm tra (CHECK) trong bảng | SELECT * FROM INFORMATION_SCHEMA.CHECK_CONSTRAINTS; |
📌 Ứng dụng: Dùng để tái tạo mô hình ERD hoặc xác định quan hệ dữ liệu phục vụ phân tích.
🟥 NHÓM 4: INNODB – HẠ TẦNG LƯU TRỮ & HIỆU NĂNG
| Bảng | Ý nghĩa | Ghi chú |
|---|---|---|
| INNODB_TABLES, INNODB_INDEXES, INNODB_TABLESTATS | Mô tả cấu trúc vật lý của bảng InnoDB | Giúp DBA kiểm tra file .ibd |
| INNODB_BUFFER_PAGE, INNODB_BUFFER_POOL_STATS | Thống kê hoạt động của buffer pool | Giám sát hiệu năng bộ nhớ |
| INNODB_TRX, INNODB_LOCKS (nếu bật Performance Schema) | Giao dịch đang mở, khóa hiện tại | Phát hiện deadlock |
| INNODB_METRICS | Chỉ số thống kê hệ thống InnoDB | Hiệu năng, I/O, cache |
| INNODB_DATAFILES, INNODB_TABLESPACES | Thông tin tablespace vật lý | Dành cho quản trị dung lượng |
📌 Ứng dụng:
- Giám sát trạng thái InnoDB buffer pool
- Theo dõi transaction, lock, tối ưu hiệu năng
🟨 NHÓM 5: MÃ HÓA, NGÔN NGỮ & KIỂU DỮ LIỆU
| Bảng | Ý nghĩa |
|---|---|
| CHARACTER_SETS | Liệt kê các bộ ký tự hỗ trợ (utf8mb4, latin1…) |
| COLLATIONS, COLLATION_CHARACTER_SET_APPLICABILITY | Quy tắc so sánh ký tự (collation) |
| ST_GEOMETRY_COLUMNS, ST_SPATIAL_REFERENCE_SYSTEMS, ST_UNITS_OF_MEASURE | Thông tin hỗ trợ dữ liệu địa lý (GIS) |
📌 Ứng dụng: Kiểm soát chuẩn hóa mã hóa, cần thiết khi hệ thống tích hợp dữ liệu nhiều nguồn.
🟫 NHÓM 6: TÀI NGUYÊN HỆ THỐNG & THÀNH PHẦN MỞ RỘNG
| Bảng | Ý nghĩa |
|---|---|
| ENGINES | Danh sách engine (InnoDB, MyISAM, Memory…) |
| PLUGINS | Danh sách plugin được cài đặt |
| EVENTS | Các sự kiện được lập lịch (scheduler) |
| PROCESSLIST | Các kết nối đang hoạt động (như SHOW PROCESSLIST) |
| OPTIMIZER_TRACE | Theo dõi cách bộ tối ưu hóa xử lý truy vấn |
| RESOURCE_GROUPS | Quản lý nhóm tài nguyên CPU, thread |
| FILES, TABLESPACES | Liệt kê file dữ liệu & tablespace vật lý |
📌 Ứng dụng: Giám sát hoạt động, phát hiện nghẽn truy vấn hoặc plugin lỗi.
🟪 NHÓM 7: ROUTINE, TRIGGER & VIEW
| Bảng | Ý nghĩa |
|---|---|
| ROUTINES | Liệt kê function & procedure người dùng tạo |
| TRIGGERS | Liệt kê trigger của hệ thống |
| VIEW_TABLE_USAGE, VIEW_ROUTINE_USAGE | Quan hệ giữa view và bảng/hàm |
| PARAMETERS | Mô tả tham số trong procedure/function |
📌 Ứng dụng: Kiểm soát logic nghiệp vụ, hỗ trợ audit và migration hệ thống.
🧠 3️⃣. Ví dụ ứng dụng thực tế trong Kho bạc Nhà nước
1️⃣ Kiểm tra bảng và quyền truy cập:
SELECT TABLE_SCHEMA, TABLE_NAME, ENGINE, TABLE_ROWS
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'kho_bac';
2️⃣ Phát hiện user có quyền cao:
SELECT * FROM INFORMATION_SCHEMA.USER_PRIVILEGES
WHERE PRIVILEGE_TYPE LIKE '%GRANT%';
3️⃣ Theo dõi giao dịch InnoDB đang khóa bảng:
SELECT trx_id, trx_state, trx_started, trx_tables_locked
FROM INFORMATION_SCHEMA.INNODB_TRX;
4️⃣ Kiểm tra dung lượng từng bảng:
SELECT TABLE_NAME, ROUND(DATA_LENGTH/1024/1024,2) AS MB
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'kho_bac'
ORDER BY MB DESC;
🧩 4️⃣. Ứng dụng
- truy vấn trực tiếp INFORMATION_SCHEMA để “đọc hiểu” cấu trúc hệ thống.
- Thực hành phân tích quyền, bảng, engine.
- Mô phỏng audit dữ liệu bằng cách tạo báo cáo truy cập.
- So sánh metadata giữa MySQL – Oracle (
dba_tables,user_tab_columns) – SQL Server (INFORMATION_SCHEMA.TABLES).