2006年1月9日
#
DB引擎:InnoDB
兩表A,B表均為6W+的記錄。用B表的信息更新A表。
SQL:update A left join B on A.field1 = B.field1 and A.field2 = B.field2
set A.field3 = B.
field3, A.field4 = B.field4
無引擎時:每1000更新需要2分11秒,全部更新大概需要2~3小時。
此時加入索引:CREATE INDEX field1_Index ON `A`(`field1`);
注:1、此處只加field1是因為 field2的內容變化很小,就那幾個值。
2、此SQL里的字段都不是主鍵
再次執行SQL,效率依舊。似乎索引沒有作用。為了驗證我的想法,查看了執行方式:
explain update A left join B on A.field1 = B.field1 and A.field2 = B.field2 set A.field3 = B.field3, A.field4 = B.field4
果然在執行時,沒用到索引。找到癥結,那就繼續找為什么索引沒有被用的原因。
查找過程省略,直接上結果。
因為是update,所以我認為 左聯和直聯,對于結果沒有區別,但是從左聯改為直聯后,
再查詢執行方式,發現就能使用索引(原因暫不知道,以后知道了再寫)
于是再次執行如下SQL:
update A inner join B on A.field1 = B.field1 and A.field2 = B.field2 set A.field3 = B.field3, A.field4 = B.field4
6W+的數據執行時間:1.43秒
優化完畢。
另,因為以上字段都非主鍵,所以 SQL修改成以下方式執行似乎更快,查詢執行方式,用到了主鍵索引和我自己加的索引
update A left join B on A.field1 = B.field1 and A.field2 = B.field2
set A.field3 = B.field3, A.field4 = B.field4
where A.key in (select key from A)
附:
刪除索引:drop INDEX field1_Index ON `A`;
查看索引:show index from A
查看線程:select * from information_schema.processlist t
show processlist
殺線程: kill processId
COBOL的項目就要結束了,下個項目就是.NET.說實在話,我是比較期待,但是如果是C#,我就更加的HAPPY了,偏偏要是VB.NET,看了半天,發現怎么就那么的奇怪呢!就感覺看一段沒有斷句的文言文!還好,現在裝了個中文的MSDN,比以前看日文的MSDN要舒服多了,MD,看起來真費勁!
今天看VB.NET的代碼,突然有種感覺,就像剛到深圳去實習,看人家以前做的項目的代碼一樣,好費勁,很多的關鍵字,咋一看還不知道,稍一迷糊就看到后面,突然發現前面的幾句代碼是啥意思啊!不知道做的時候又是什么樣一種感覺,總的來說就是奇怪!ff
就要過年了,我卻離家太遠,不能回去過年,生平以來第一次不在家里過年,這是我出來工作的第一個年頭就在外鄉過!
真的好想回家,想念家里的父母,不知道他們身體是否還好!想念我那從小生活的地方,想回到我以前住過的房間睡上一晚!
6:30 起床(起床之后,一定要吻一下正在熟睡的老婆
的臉,但動作要輕,不得吵醒老婆 )
6:35--7:00 煅煉身體(在老婆要抱的時候,可以輕易抱
上七樓;在老婆受到欺負的時候 可以以一敵十)
7:00--7:15 打開音響,叫老婆起床(一日之計在于晨,
這時候的女人這是一日之中最可愛的時候,一般都會有點撒嬌,
叫起床時,一定要溫柔,動作要輕,輕輕地摟起來)
7:15--7:30 幫老婆穿衣服(千萬要小心,如果像麥當娜
一樣,把內衣穿在外面的話,那我就等死吧)
7:30--7:45 和老婆一起洗漱(有三要:要幫老婆擠好牙
膏,要幫老婆放好洗臉水,要幫老婆梳頭)
7:45--8:00 送老婆上班(以最快的速度送她上公車)
8:45--8:30 自己上班
8:30--12:00 上班(努力工作,有事做要做,沒事做找出
事也要做)
12:00--12:10 打電話給老婆(問老婆上午過得怎么樣,
中午要吃什么東西……這個不用教了?)
12:10--12:40 吃工作餐(記住,一定要吃工作餐,不得
吃別的東東,就算吃了別的東東,價格也不可以超過5元)
12:40--13:00 小棲片刻(為了下午更好的工作,一定要
小棲,不得在公司四處看小mm)
13:00--17:30 努力工作(不努力工作怎么養老婆?)
17:30--18:00 接老婆下班(看情況,不加班的時候!一定要準時,不得讓老婆久等)
18:00--19:00 陪老婆逛街(逛街是男人的必修課,每天必修。其間,老婆要買什么東西,一定要大方,不得有嫌貴不買之行為,如果老婆不買什么東西,一定要買東西送給老婆)
19:00--20:00 吃飯(老婆做,不能把她寵壞了)
20:00--22:00 陪老婆(老婆要看電視,不得換臺;老婆要聊天,不得不理)
22:00--22:20 洗澡(為節約用水,一定要和老婆一起洗,幫老婆搓背)
22:20 睡覺(被子要先鋪好,老婆要抱好,不得比老婆先睡著)