Re: [書籍] 有sql語法效能優化的書嗎?

看板Database作者 (阿U)時間11年前 (2013/08/14 00:01), 編輯推噓0(0012)
留言12則, 4人參與, 最新討論串2/2 (看更多)
※ 引述《bernachom (Terry)》之銘言: : 想詢問一下 : 有sql語法效能優化的書嗎? : 因為有時後覺得自已寫的語法似乎不是很快 : 但是又不知道怎麼寫才會好一點 : 想要找優化的相關書籍來看 : 希望有朋友推薦 : 謝謝了~ 我所知道的就大概一些東西盡量少用 1.select出需要的欄位就好 2.光看時間複雜度的話~ 會強烈建議少用 in 指令 (複雜度為n^2) 可以多用join 來取代in 3.另外就是子查詢?? 子查詢的複雜度比較難懂 應該也有n^2 ?? 有請高手補充~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.44.118.123

08/14 00:28, , 1F
要先考慮一點:DBMS的優化器可能會改寫你的指令
08/14 00:28, 1F

08/14 00:29, , 2F
與其考慮寫SQL的時間複雜度 不如看看優化器怎麼搞你的SQL
08/14 00:29, 2F

08/14 00:30, , 3F
執行計畫展出來 統計值展出來 再看你儲存的狀況
08/14 00:30, 3F

08/14 00:51, , 4F
而且我覺得很怪 你的時間複雜度怎麼出來的?
08/14 00:51, 4F

08/14 00:52, , 5F
table scan 或 index 花的成本不一樣 為什麼會是 n^2 ?
08/14 00:52, 5F

08/14 00:55, , 6F
而且多用JOIN這點...(捏鼻 希望你的DB夠強壯....
08/14 00:55, 6F

08/14 10:20, , 7F
記憶體要夠大...(誤
08/14 10:20, 7F

08/14 12:01, , 8F
效能調校的話,觀察和解讀執行計畫最重要 ~~
08/14 12:01, 8F

08/27 00:52, , 9F
我都用人體時間複雜度來偵測,不同TABLE還是要Join阿~~
08/27 00:52, 9F

08/28 22:20, , 10F
不同的JOIN法 兩邊的集合大小 合併方式 出來會天差地別喔
08/28 22:20, 10F

08/29 23:15, , 11F
一般來說都是等價合併,用in的子查詢,我個人很排斥@@
08/29 23:15, 11F

08/29 23:17, , 12F
可以考慮exists
08/29 23:17, 12F
文章代碼(AID): #1I2bXihq (Database)
文章代碼(AID): #1I2bXihq (Database)