轉貼:Mysql 的Row Lock 與 Table Lock

資料來源Neo’s Blog

先前介紹過 SELECT … FOR UPDATE 的用法,不過鎖定(Lock)的資料是判別就得要注意一下了。由於 MyISAM 預設是 Row-Level Lock,所以只有「明確」的指定主鍵,MySQL 才會執行 Row lock (只鎖住被選取的資料例) ,否則 MySQL 將會執行 Table Lock (將整個資料表單給鎖住)。
舉個例子:

假設有個表單 products ,裡面有 id 跟 name 二個欄位,id 是主鍵。

例1: (明確指定主鍵,並且有此筆資料,row lock)

SELECT * FROM products WHERE id=’3′ FOR UPDATE;

例2: (明確指定主鍵,若查無此筆資料,無 lock)

SELECT * FROM products WHERE id=’-1′ FOR UPDATE;

例2: (無主鍵,table lock)

SELECT * FROM products WHERE name=’Mouse’ FOR UPDATE;

例3: (主鍵不明確,table lock)

SELECT * FROM products WHERE id<>’3′ FOR UPDATE;

例4: (主鍵不明確,table lock)

SELECT * FROM products WHERE id LIKE ‘3’ FOR UPDATE;

註1:
FOR UPDATE 僅適用於 MyISAM,且必須在交易區塊(BEGIN/COMMIT)中才能生效。

註2:
要測試鎖定的狀況,可以利用 MySQL 的 Command Mode ,開二個視窗來做測試。

如果是使用Appserver環境,請把Mysql服務停下來,打開my.ini,找到skip-innodb,前面加上註解變成
#skip-innodb

重新啟動服務,就可以在資料儲存引擎中找到innodb的選項,就可以進行lock table/lock row的功能。

CentOS 6 於7月9日正式發行

等了好久的新版CentOS6(先前的版本是5.5),我等不及要使用新版apache、php和MySQL,因為換工作的關係,需求就整個變的不這麼急了。

等了好久,終於等到CentOS6,其他的RedHAT Linux克隆版早就出了,不知道為什麼這次CentOS 6這麼晚才推出,不管,有需要的趕快去下載。

PS.我是昨天查了一下,才知道推出,原本預計的發行日是六月,不知不覺就變到7月了。

CentOS官網

Angry Bird(憤怒鳥) PC版

在Apple的APPS中(Apple iOS平台),Angry Birds的下載一直是排名很前面,Angry Birds後來又推出了Android平台上的版本,但是我還是覺得螢幕太小爽度不夠,所以我也一直沒有玩Angry Birds這個遊戲。

前幾天艾倫問我要不要玩Angry Birds PC可攜的版本,我是還好啦!沒有特別想玩,小猴子好像還蠻有興趣的,我也就上網查了一下。 Read more

終於收到賣咖啡的通知信件

之前一直講MaCfee會誤判我的網站有毒,我有去加入帳號、申訴,今天終於收到McAfee SiteAdvisor Support的信,看來他們終於願意正視我的網站誤判的問題。就如中正大學網友小邱說的,MaCfee一定會處理,只是很慢,是真的很慢沒有錯,但是總比趨勢科技的防毒軟體置之不理來的好多了。

Read more

IE9與ckeditor相容性問題

假設你的網站是近兩年的作品,而且有使用ckeditor+ckfinder的組合的話,剛好最近又有更新微軟的IE9,那可能真的會遇到不相容的問題。

問題是後出的IE9,並沒有這麼好的兼容性,同樣的問題卻是在IE7/IE8中不存在的,所以這邊我很肯定,在CKeditor切到原始碼,無法編輯的問題,是IE9兼容性不足的問題。 Read more

賣咖啡之後是趨勢

又有朋友回報,我的網站被防毒軟體視為惡意網站,當然,同一份老舊的掃瞄報告,早在去年搬家前,我就知道網站被入侵,掛了木馬,我的網誌裡面,都有記錄。

拜託一下你們這些防毐軟體,不要自己沒有能力判別網站是不是被掛碼,就老是引用免費的病毒回報資料,亂報網站有毒。 Read more

搞什麼鬼McAfee(賣咖啡)誤判我的網站

我的網站完全沒有問題,也沒有毒,根本就是亂搞其實上星期我就知道McAfee誤判我的網站,因為朋友說我的網站有毒,問題是我檢查過Code,根本沒有異常,我有花時間去註冊McAfee的網站管理員,但是一直很忙,沒有空進行相關的申訴。

今天朋友寫信來,說他裝了McAfee出現這樣的訊息,我想,我不得不正視一下這個問題了。 Read more