2007年1月16日 星期二

Select Join, Insert Select (Select Into)

(這篇又是逐客文, 手癢了, 大家可以略過)..

在 Data Mining 中, 最忌諱的就是把 DBMS 給操死,
因為計算的 Client/Agent 可以很多, 但若有些 Database 沒有分散,
一行指令就可以讓整個 Data Base Management System 給掛掉.

基本上我也不是反對 Join 等 "高級" SQL 指令的人,
但這些吃資源的指令不能太常使用, 甚至不能寫在 User 端,
所以我在 Data Mining 小組就說, "Join" 是禁用的....

有時為了偷懶, 只是做個實驗忘了改回來,
前一陣子就吃到苦果...

部落格觀察從搬家到 APOL 後,
大概被攻擊的次數是被 10 個人攻擊 (DOS) 30 次左右吧,
有些是系統撐得住, 有時不盡然, 但在 Tag 的部份是有被攻就會掛,
所以在想有天該從寫, 把 Tag 拆開不同 Table...

但在昨天時, 監看 MySQL 的 Process, 突然看到我有一行指令造成 Lock.
仔細一看, 原來當時在做測試, 做了個 Join, 之後還 Sorting, ...
而這 SQL 就一直保留著, 忘了改回來,
天阿, 原來是如此, 就趕緊拿掉, ......

經過把 Apache 的 Memory Leak 做個舒緩,
以及這個吃資源的元兇抓出來後,
機器又可以撐 1.5 倍以上的成長不用加記憶體了...

2 則留言:

  1. 請問不用Join 那我們應該使用subQuery還是什麼方法,一直以為 join是最有效率的呢 ><

    回覆刪除
    回覆
    1. 對寫程式是最有效率的了...

      但重點是在於會不會 Lock 或吃資源...

      刪除

熱門文章