作者sing10407 (阿U)
看板Database
標題Re: [書籍] 有sql語法效能優化的書嗎?
時間Wed Aug 14 00:01:43 2013
※ 引述《bernachom (Terry)》之銘言:
: 想詢問一下
: 有sql語法效能優化的書嗎?
: 因為有時後覺得自已寫的語法似乎不是很快
: 但是又不知道怎麼寫才會好一點
: 想要找優化的相關書籍來看
: 希望有朋友推薦
: 謝謝了~
我所知道的就大概一些東西盡量少用
1.select出需要的欄位就好
2.光看時間複雜度的話~
會強烈建議少用 in 指令 (複雜度為n^2)
可以多用join 來取代in
3.另外就是子查詢??
子查詢的複雜度比較難懂 應該也有n^2 ??
有請高手補充~
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.44.118.123
1F:→ iFEELing:要先考慮一點:DBMS的優化器可能會改寫你的指令 08/14 00:28
2F:→ iFEELing:與其考慮寫SQL的時間複雜度 不如看看優化器怎麼搞你的SQL 08/14 00:29
3F:→ iFEELing:執行計畫展出來 統計值展出來 再看你儲存的狀況 08/14 00:30
4F:→ iFEELing:而且我覺得很怪 你的時間複雜度怎麼出來的? 08/14 00:51
5F:→ iFEELing:table scan 或 index 花的成本不一樣 為什麼會是 n^2 ? 08/14 00:52
6F:→ iFEELing:而且多用JOIN這點...(捏鼻 希望你的DB夠強壯.... 08/14 00:55
7F:→ gname:記憶體要夠大...(誤 08/14 10:20
8F:→ jengting:效能調校的話,觀察和解讀執行計畫最重要 ~~ 08/14 12:01
9F:→ benqm300:我都用人體時間複雜度來偵測,不同TABLE還是要Join阿~~ 08/27 00:52
10F:→ iFEELing:不同的JOIN法 兩邊的集合大小 合併方式 出來會天差地別喔 08/28 22:20
11F:→ benqm300:一般來說都是等價合併,用in的子查詢,我個人很排斥@@ 08/29 23:15
12F:→ benqm300:可以考慮exists 08/29 23:17