Vấn đề: AI viết SQL "mù"
Khi bạn nhờ AI viết câu SQL mà nó không biết schema thật của bạn, nó phải đoán: đoán tên bảng, tên cột, kiểu quan hệ. Kết quả là SQL sai tên cột, thiếu index, hoặc tối ưu kém. MCP Database connection xoá bỏ việc đoán: AI đọc trực tiếp schema và dữ liệu mẫu rồi mới viết.
Cài MCP server cho database
Có sẵn server cho Postgres, SQLite, và nhiều DB khác. Ví dụ Postgres:
{
"mcpServers": {
"postgres": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-postgres",
"postgresql://user:pass@localhost:5432/mydb"]
}
}
}
⚠️ Cực kỳ nên dùng read-only. Tạo một DB user chỉ có quyền
SELECTcho AI, hoặc trỏ vào bản sao/staging. Đừng đưa connection string quyền admin của production cho AI tự do chạy.
Sức mạnh: AI tự khám phá rồi mới viết
Quy trình chuẩn thay vì "viết SQL hộ tôi":
Bước 1 — Cho AI đọc schema:
"Dùng MCP postgres, liệt kê các bảng và mô tả schema của bảng
orders,customers,order_items. Cho tôi biết quan hệ khoá ngoại."
Bước 2 — Kiểm tra dữ liệu thật:
"SELECT 5 dòng mẫu từ
ordersđể tôi xem dữ liệu thực tế trông thế nào (định dạng ngày, trạng thái có những giá trị gì)."
Bước 3 — Viết query dựa trên hiểu biết thật:
"Viết query lấy top 10 khách hàng theo tổng chi tiêu trong quý 2/2026, kèm số đơn hàng. Tối ưu cho dữ liệu lớn và giải thích vì sao."
Vì AI đã thấy schema và dữ liệu thật, query trả về đúng tên cột, đúng giá trị enum, đề xuất index hợp lý.
Các use case mạnh
| Tác vụ | Prompt mẫu |
|---|---|
| Debug query chậm | "Phân tích query này, chạy EXPLAIN, đề xuất index" |
| Kiểm tra dữ liệu | "Có bao nhiêu đơn hàng trạng thái null? Liệt kê vài ví dụ" |
| Sinh báo cáo | "Tổng doanh thu theo tháng năm 2026, xuất ra bảng" |
| Học schema dự án mới | "Vẽ sơ đồ quan hệ các bảng chính bằng mô tả" |
An toàn database — không thể thoả hiệp
- Read-only mặc định. Quyền ghi/xoá chỉ mở khi thật cần và có duyệt tay.
- Không bao giờ trỏ thẳng production có quyền cao. Dùng replica, staging, hoặc user SELECT-only.
- Cẩn thận dữ liệu nhạy cảm. Bảng chứa thông tin cá nhân/mật khẩu — cân nhắc trước khi cho AI đọc.
- Review trước khi chạy lệnh ghi.
UPDATE/DELETEkhông cóWHERElà thảm hoạ — luôn đọc query trước khi cho thực thi.
