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