Mysql 差集與 Database Tuning

最近有遇到一個在某些表格會插入失敗的實例,問題是知道該如何解了,但是我們想要知道現在 DB 中的差異,於是乎遇到了一些問題,把這些東西記錄一下。

目前的狀況是兩個 DB 的 record count 一個是KK級的,一個是10K級的
sql 中要找兩個 table 裡面的差集,第一個想法是用
SELECT cola FROM table1 WHERE cola NOT IN (SELECT colb FROM table2);
但是看起來整個效能還滿差的,而且還咬住了兩個table 讓別的 query process 無法拿資料,於是乎又在網路上查了一下,看到了另外一個解法:
SELECT cola FROM table1
EXCEPT
SELECT colb FROM table2;



看起來非常殘念 mysql 會跟我說 EXCEPT 有問題,也許是 mysql 不支援這樣的語法
接下來又查了一會兒,找到了下面的語法SELECT cola FROM table1
LEFT JOIN table2 ON cola=colb
WHERE colb IS NULL

用這種判斷 is null 的方式來找出差集,可是這樣又殘念了,因為效能還是很差,丟進去 5 分鐘都跑不出來答案,後來只好想說,既然會咬住 table,那用 create temporary table 的方式,讓這個 query process 不要咬住 table,底下是我用的語法:
CREATE TEMPORARY TABLE table3 SELECT cola FROM table1;
CREATE TEMPORARY TABLE table4 SELECT colb FROM table2;
SELECT * FROM table3 where cola NOT IN (SELECT colb FROM table4 );
結果這樣子跑了10分鐘都跑不出來,我怕再下去即使跑出來也因為 connection timeout 而看不到結果,浪費了 cpu 資源,而且我還有要把兩個 table 反過來查詢的要跑,於是又找了一下看有沒有更有效能的方式,找了半天,有人說建 index 會快很多,於是我又改了一下我的語法:CREATE TEMPORARY TABLE table3 SELECT cola FROM table1;
CREATE UNIQUE INDEX idx_cola ON table3 (cola);
CREATE TEMPORARY TABLE table4 SELECT colb FROM table2;
CREATE UNIQUE INDEX idx_colb ON table4 (colb);
SELECT * FROM table3 where cola NOT IN (SELECT colb FROM table4 );

和上面最大的不同是多了兩個 unique index 條件,結果這次命令跑的飛快,大約5秒就有答案了,原來加了index 會有這麼好的效果@@
反正我們平常 query 的語法多半是以 cola/colb 為 where, 加上了這個 index 不知道會不會讓 query 的效能變好一點

繼續閱讀...

adb over tcpip

adb over tcpip, 當 device 需要充電的時候這個還滿有用,作法也很簡單,筆記一下

1. 先連 wifi 並透過 settings 找到 wifi 的 ip ex: 192.168.1.2
2. 先連 usb 並且輸入

adb tcpip 5555


3. 拔掉 usb 並輸入

adb connect 192.168.1.2:5555

然後 adb 就可以透過 tcpip 接傳資料了

4. 要取消的時候輸入

adb usb

就可以了

繼續閱讀...

[筆記]解決 ubuntu 英文介面中文字非常醜的問題

ubuntu 中使用英文介面的時候,所有有中文字的看起來都很醜,
無論是網頁還是系統中的選單,但是切成中文介面的時候,中文字又都很漂亮
想要用英文的介面,但又被那個醜到不行的中文字弄到用不下去
其實要有漂亮的中文字還滿簡單的


Step 1. 安裝中文字型,在 language support -> Install/Remove Languages 先把 Chinese(triditional) 打勾,讓系統自己安裝中文字型和一些語言 support.(映像中 10.10 不用,但 11.04我發現裝好後連中文字型沒辦法顯示,於是我就先裝了免得麻煩)

Step 2. 在終端機輸入指令
$ cd /etc/fonts/conf.d
$ sudo ln -s ../conf.avail/69-language-selector-zh-tw.conf

然後,你就會發現各位師兄弟歸位中文字變漂亮了

繼續閱讀...

  © Blogger template 'Minimalist G' by Ourblogtemplates.com 2008 Modified By Hugh

Back to TOP