MySQL 使用 MyISAM、InnoDB 需要調整的設定參數、數值都不一樣, 隨著機器的 CPU、RAM 和搭配的 Serivce 都需要另外設定調整.
標籤: mysql
於 Ubuntu、Debian 安裝 MySQL Percona
Percona 是 MySQL 的分支之一, 安裝之後, 操作起來跟一般 MySQL 標準版本, 不會感到有任何差異.
mysqldump 一筆一行 Insert 的 Dump 語法
MySQL 想要對文字內容大量取代某個網址, 比較安全的做法是先 mysqldump 所有資料後, 對內容做取代, 然後在整個 Import 回去.
但是有幾個問題:
- 怕取代資料會有意外, 所以做完要再次確定修改的筆數, 來以防替換到不該取代的, 問題就大了.
- mysqldump 的資料都是一次 Insert 好幾筆資料混在同一行, 造成確認困難.
以上問題, 只要 MySQL dump 的資料可以一筆 Insert, 一行 SQL 語法, 就可以解決此問題.
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 Fulltext Search 使用方式
使用 MySQL 來達到 Fulltext 的效果, MySQL 對於 英文會自己依照空格去斷開, 中文就得要自行斷詞囉~
MySQL InnoDB Replication Slave 太慢 跟不上解法
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 的衍生版本 - 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〉
計算 MySQL 可能用到的記憶體數量
MySQL 會依照 my.cnf 的設定來決定記憶體的使用量, 是否有公式可以計算 MySQL 在目前設定下, 最高的記憶體使用量會是多少?
註: 此篇計算針對 Innodb.
MySQL 欄位格式 CHAR 與 VARCHAR 的差異
MySQL 規劃欄位的時候, 常常會用到 char 與 varchar, 那這兩個的差異在哪邊? 怎麼樣使用才能節省空間呢?