MySQL 參數值 調整建議的 Script

MySQL 使用 MyISAM、InnoDB 需要調整的設定參數、數值都不一樣, 隨著機器的 CPU、RAM 和搭配的 Serivce 都需要另外設定調整.

閱讀全文〈MySQL 參數值 調整建議的 Script〉

mysqldump 一筆一行 Insert 的 Dump 語法

MySQL 想要對文字內容大量取代某個網址, 比較安全的做法是先 mysqldump 所有資料後, 對內容做取代, 然後在整個 Import 回去.

但是有幾個問題:

  1. 怕取代資料會有意外, 所以做完要再次確定修改的筆數, 來以防替換到不該取代的, 問題就大了.
  2. mysqldump 的資料都是一次 Insert 好幾筆資料混在同一行, 造成確認困難.

以上問題, 只要 MySQL dump 的資料可以一筆 Insert, 一行 SQL 語法, 就可以解決此問題.

閱讀全文〈mysqldump 一筆一行 Insert 的 Dump 語法〉

MySQL myisamchk 遇到 Disk is full 的解法

MySQL 使用 myisamchk 修復 *.MYI 時, 出現下述訊息:

myisamchk: Disk is full writing '/tmp/ST3lJjsW' (Errcode: 28). Waiting for someone to free space... (Expect up to 60 secs delay for server to c ontinue after freeing disk space)

myisamchk: Retry in 60 secs. Message reprinted in 600 secs

閱讀全文〈MySQL myisamchk 遇到 Disk is full 的解法〉

MySQL 對 MyISAM、InnoDB 使用 Optimize Table

系統用久了, 自然就會有不連續的碎片(fragmented)產生, 以前 Dos 使用 defrag, Windows 使用磁碟重組, 而 MySQL 則是使用 Optimize table.

以往都是使用: 使用 PHP 對所有 MySQL Database 做 Optimize / Repair 的動作 - 這裡面的那隻程式來跑.

這次突然想到對特定的 Table 手動執行一下, 意外看到下述的訊息:

mysql> OPTIMIZE TABLE foo;

+----------+----------+----------+-------------------------------------------------------------------+
| Table    | Op       | Msg_type | Msg_text                                                          |
+----------+----------+----------+-------------------------------------------------------------------+
| test.foo | optimize | note     | Table does not support optimize, doing recreate + analyze instead |
| test.foo | optimize | status   | OK                                                                |
+----------+----------+----------+-------------------------------------------------------------------+

雖然結果一樣, 但是還是查查看差別為何~

閱讀全文〈MySQL 對 MyISAM、InnoDB 使用 Optimize Table〉

MySQL 的衍生版本 - Percona、MariaDB、MySQL branch at Google - 2012

自從 MySQL 被 Oracle 買過去後, 依照 MySQL 原本架構再開發出衍生的版本, 連 Google 都來插一腳囉~ 🙂

2012/04/10 更新, Twitter 也釋出他改得 MySQL 版本 - MySQL at Twitter

閱讀全文〈MySQL 的衍生版本 - Percona、MariaDB、MySQL branch at Google - 2012〉