首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 進階冷門技巧:XML 輸出、索引重建、表壓縮、CSV 匯出與 Strict 模式

     編輯:MySQL 資料庫相關知識

MySQL 文檔豐富但功能更新快,許多實用特性常被忽略。本文精選 8 個「不為人知」的進階技巧,涵蓋輸出格式、維護操作、SQL 擴充、監控與配置優化。

1. XML 格式輸出查詢結果

啟動客戶端加 --xml 參數,SELECT 結果以 XML 標籤輸出,便於程式整合解析:

shell> mysql --xml
mysql> SELECT * FROM test.stores;

  1This is a test...

2. 快速重建全文索引:REPAIR TABLE QUICK

調整全文搜尋變數後需重建索引,REPAIR TABLE tbl QUICK 僅重建索引不動資料,秒級完成:

mysql> REPAIR TABLE content QUICK;
+---------+--------+----------+----------+
| Table   | Op     | Msg_type | Msg_text |
+---------+--------+----------+----------+
| content | repair | status   | OK       |
+---------+--------+----------+----------+

3. 壓縮唯讀 MyISAM 表:myisampack

對唯讀歸檔表執行 myisampack table.MYI,典型壓縮率 40% 以上,節省磁碟且提升讀取速度(解壓在記憶體)。

4. SQL 流程控制:IF / CASE 表達式

支援標準 SQL 流程控制,可直接在 SELECT 中轉換值:

SELECT IF(priv=1, 'admin', 'guest') AS usertype FROM privs WHERE username='joe';

5. CSV 格式匯出:mysqldump -T

mysqldump -T /path --fields-terminated-by=, db tbl 產生逗號分隔文字檔,直接可被 Excel/ETL 工具匯入。

6. Strict SQL 模式:杜絕「壞資料」

啟動參數 --sql_mode="STRICT_ALL_TABLES",嚴格檢查:資料截斷、非法日期、型別不符皆報錯中止,而非靜默修正。

7. 即時監控:SHOW STATUS

回傳 150+ 狀態變數:Aborted_clients、Threads_connected、Uptime、Queries 等,適合寫監控腳本採集。

8. 自動產生建表 DDL:SHOW CREATE TABLE

mysql> SHOW CREATE TABLE products;
CREATE TABLE `products` (
  `id` int(8) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL DEFAULT '',
  `price` int(10) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

9. 客製化提示符:prompt 指令

mysql> prompt \u@\h:\d> → root@localhost:db1>,支援 \u用戶 \h主機 \d資料庫 \D完整時間等。

善用這些隱藏功能,能大幅提升開發除錯與運維效率。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved