Newer posts are loading.
You are at the newest post.
Click here to check if anything new just came in.

November 20 2009

joehorn
16:30
joehorn
09:49
JoeHorn [原噗] by yjh0225: 這邊有最新的 Google Chrome OS 居然還有提供 vmware 的虛擬環境檔 :-P
joehorn
09:42
JoeHorn 說 [Facebook] 餐城車禍現場... http://images.plurk.com/3137303_54548c415b8ebfd8c0a005cca74912d2.jpg (lmao)
joehorn
08:57
JoeHorn 說 嚇死我了,一度以為昨天裝好的東西,今天就爛了....
joehorn
06:58

November 19 2009

joehorn
17:29

一些增進 MySQL 效能的 tips

幾天前,跟 Solaris 叔叔 談到 MySQL 的 ENUM,回家後上網找了些資料,剛好找出了一些使用 MySQL 時,與效能有關的 tips。

稍微整理過後,放在這裡:

  • 善用 EXPLAIN SELECT 分析 SQL statement,以下列舉狀態解讀:
    EQ_REF 一對一比對
    REF 一對多比對
    RANGE 特定範圍的資料會被傳回
    INDEX 使用 INDEX 裡的資料
    ALL 對整個 TABLE 作掃瞄(最差)
  • 善用 INDEX,以這個 SQL statement 為例:
    SELECT `col_a`
    FROM `table_a` LEFT JOIN `table_b`
    ON `table_a`.`col_b` = `table_b`.`col_c`
    WHERE `col_d` = ....;
    
    -- SELECT 的欄位不需 INDEX,ex: `col_a`。
    -- JOIN 的欄位需要 INDEX,ex: `table_a`.`col_b` 與 `table_b`.`col_c`。
    -- WHERE 的欄位需要 INDEX,ex: `col_d`。
    
  • 儘量使用固定大小的欄位,MyISAM 搜尋固定大小欄位比較快;也就是說,能用 CHAR 就別用 VARCHAR。
  • 儘量將欄位指定為 NOT NULL。
  • ENUM 格式的欄位,資料處理速度很快(實測結果在這)。
  • 不要取不需要的資料,下面這種語法就是不好的例子:
    SELECT * ...
  • 把 BLOB 與 TEXT 拆開,減少 MySQL 開啟單一大檔(table 資料檔案過大)的機會。
  • JOIN 用的欄位資料格式最好是相同的,以免 MySQL 作 FULL TABLE SCAN。
  • 使用 LIKE 時,避免把 % 放在字串開頭,以免 INDEX 利用率不佳。
    -- 下列這種語法無法利用 INDEX
    SELECT ... WHERE `col` LIKE '%string%';
    
    -- 下列這種語法會利用 INDEX
    SELECT ... WHERE `col` LIKE 'string%';
  • 注意 WHERE 子句內的運算式。
    -- 下列這種語法會使用 INDEX,速度快。
    SELECT ... WHERE `col` < 100 / 10;
    
    -- 下列這種語法會導致 FULL TABLE SCAN,速度慢。
    SELECT ... WHERE `col` * 10 < 100

Related posts:

Technorati Tags: , , , , , , , , , ,


joehorn
10:39
JoeHorn 說 SE 社的 XPERIA X10 應該是目前外觀最漂亮的 Android 手機吧?
joehorn
06:50
JoeHorn 說 太棒了~ 安裝成功! (dance)
joehorn
06:35
JoeHorn 說 配了 1GB 的記憶體的 XP,安裝過程一度僅剩 10MB ... 我猜有吃到 Page 了... (blush)
joehorn
05:56
JoeHorn 說 裝好久... :-& 我要忍耐,安裝成功就可以擴充記憶體了... (blush)
joehorn
05:20
JoeHorn 說 真詭異,同一套軟體,XP 上面安裝過程會出現的狀況跟 server 2003 的狀況不一樣~ cichikung.myweb.hinet.net/plurk/onion/021.gif
joehorn
03:39
JoeHorn 說 之前用 Google Reader 訂了一些 Look!生活網 的 RSS,剛剛發現他們的 RSS 沒有在更新... (angry)

November 18 2009

joehorn
16:37
JoeHorn 說 來睏~ 晚安~ (wave)
joehorn
03:54

November 17 2009

joehorn
16:51
joehorn
15:24
JoeHorn http://images.plurk.com/3736156_66331f19f191cd5f482d98774e259556.jpg (lmao)
joehorn
15:00
JoeHorn 說 今天才看到NagVis,看來挺好玩的...
joehorn
08:23
JoeHorn http://images.plurk.com/3868475_13cf130acaef0d3e37e9abdaffdcea93.jpg # 言簡意賅! XDDDDD
joehorn
08:00
JoeHorn [原噗] by mhsin: 女同事睡覺偷拍。這太強了 (worship)

November 16 2009

joehorn
14:57
JoeHorn 說 是我的笑點降低了嗎? 阿 KEN 跟納豆的五穀奶廣告還蠻好笑的... XD
Older posts are this way If this message doesn't go away, click anywhere on the page to continue loading posts.
Could not load more posts
Maybe Soup is currently being updated? I'll try again automatically in a few seconds...
Just a second, loading more posts...
You've reached the end.