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

MySQL 10 大隱藏特技:XML 輸出、快速重建索引、壓縮表、CSV 匯出與更多

     編輯:MySQL 資料庫相關知識

MySQL 擁有許多鮮為人知但極度實用的特性,掌握這些技巧能大幅提升開發與運維效率。

1. XML 格式輸出查詢結果

mysql --xml -e "SELECT * FROM test.stories;"

輸出標準 XML,便於程式解析整合:



  
    1
    This is a test
  

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

修改全文搜尋參數後,無需 ALTER TABLE ... DROP INDEX ... ADD INDEX 重建,直接:

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

秒級完成,適合大表維護。

3. 壓縮唯讀 MyISAM 表:myisampack

myisampack movies.MYI
-- Compressing movies.MYD: (146 records) - 41.05%

壓縮後唯讀、極大幅節省磁碟空間,適合歸檔資料、日誌表。

4. SQL 中使用流程控制:IF / CASE

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

SELECT CASE 
    WHEN score >= 90 THEN 'A'
    WHEN score >= 80 THEN 'B'
    ELSE 'C'
END AS grade FROM scores;

5. CSV 格式匯出資料:mysqldump -T

mysqldump -T /tmp/export_dir --fields-terminated-by=',' db_name table_name

產生 table_name.txt(資料)與 table_name.sql(結構),直接可被 Excel、Python pandas 讀取。

6. 更多實用技巧速覽

技巧指令/語法用途
查看表大小SHOW TABLE STATUS LIKE 'tbl_name'\G快速掌握資料量、索引大小、碎片率
只查結構不查資料SHOW CREATE TABLE tbl_name取得建表 DDL,含索引、外鍵、字元集
查詢執行計劃EXPLAIN SELECT ...分析索引使用、掃描行數、Join 類型
強制/忽略索引SELECT * FROM t USE INDEX (idx_a) ...
SELECT * FROM t IGNORE INDEX (idx_b) ...
優化器選錯索引時手動干預
直線 Join 順序SELECT STRAIGHT_JOIN ...強制按 FROM 子句順序 Join,避免優化器誤判
多行插入優化INSERT INTO t VALUES (1),(2),(3)...單條 SQL 批次寫入,減少網路往返
插入或更新INSERT ... ON DUPLICATE KEY UPDATE ...Upsert 模式,避免先查後寫競態
分頁優化WHERE id > last_id ORDER BY id LIMIT 20避免 OFFSET 深分頁掃描大量資料
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved