在現代軟體系統中,資料庫(Database)往往是整體系統效能與擴展性的瓶頸所在。隨著 AI 工具的普及,資料庫設計(Database Schema Design)與 SQL 查詢最佳化(Query Optimization)不再僅依賴 DB 專家的經驗累積。本篇將探討如何利用 AI 輔助產生 Entity-Relationship Diagram (ERD)、自動檢查 Index 設定,以及如何輸入慢查詢(Slow Query)與 EXPLAIN ANALYZE 執行計畫讓 AI 精準調優。1. AI 輔助 ER 圖與資料庫 Schema 設計設計資料庫時,合理的正規化(Normalization)與反正規化(Denormalization)權衡至關重要。透過文字描述,AI 能迅速繪製 Mermaid 格式的 ER Diagram 並轉換成 DDL (SQL Script)。實戰 Prompt 範例Markdown請擔任資深 DBA,根據以下需求生成 PostgreSQL 的 Mermaid ERD 與 CREATE TABLE 語法:
需求:建立線上學習平台資料庫
實體:使用者(Users)、課程(Courses)、章節(Chapters)、選課紀錄(Enrollments)、交易紀錄(Payments)
要求:
USERS {
uuid id PK
string email
string password_hash
timestamp created_at
}
COURSES {
uuid id PK
string title
decimal price
boolean is_published
}
ENROLLMENTS {
uuid id PK
uuid user_id FK
uuid course_id FK
timestamp enrolled_at
}
-- 2. 重構 SQL:先過濾與聚合成語意子查詢,再 JOIN users 表
WITH TopSpenders AS (
SELECT user_id, SUM(amount) as total_spent
FROM payments
WHERE created_at >= '2026-09-01'
GROUP BY user_id
HAVING SUM(amount) > 10000
)
SELECT u.id, u.email, ts.total_spent
FROM TopSpenders ts
JOIN users u ON u.id = ts.user_id;
3. AI 在資料庫管理中的風險與最佳實踐常見風險最佳實踐(Best Practices)生產環境數據洩露提供 SQL/EXPLAIN 給 AI 時,務必去標識化(Anonymization),遮蔽真實 PII 資料(如姓名、Email、IP)。幻覺 DDL(破壞性 Migration)AI 建議的 DROP COLUMN 或 ALTER TABLE 語法必須先在 Staging 環境跑過 Migration 測試。過度索引(Over-indexing)AI 往往會建議針對各欄位加索引,但過多索引會嚴重降低 INSERT / UPDATE 效能,需由 DBA/工程師進行最終權衡。今日小結AI 是極度優秀的 SQL Copilot,能幫助開發者在設計初期就避開常見的坑(如未建立外鍵索引、欄位型別不匹配),並在遭遇生產環境效能議題時,快速透過 EXPLAIN 指出問題所在。明天預告:Day 23 - AI 驅動的重構技巧:老舊系統(Legacy Code)的現代化改造計畫