Java 程序員常犯的 10 個(gè) SQL 錯(cuò)誤!
閱讀本文大概需要 6 分鐘。
技能(任何人都能容易學(xué)會(huì)命令式編程) 模式(有些人用“模式-模式”,舉個(gè)例子,模式可以應(yīng)用到任何地方,而且都可以歸為某一類模式) 心境(首先,要寫個(gè)好的面向?qū)ο蟪绦蚴潜让钍匠绦螂y的多,你得花費(fèi)一些功夫)
好好的訓(xùn)練你自己。當(dāng)你寫SQL時(shí)要不停得想到NULL的用法: 這個(gè)NULL完整性約束條件是正確的? NULL是否影響到結(jié)果?
便利性。這比在Java中編寫正確的SQL可能更加的容易。 性能表現(xiàn)。數(shù)據(jù)庫(kù)應(yīng)該比你的算法處理起來(lái)更加快.而且更加重要的是,你不必再去傳遞數(shù)百萬(wàn)條記錄了。
UNION ALL(允許重復(fù)) UNION (去除了重復(fù))
它(也許)解決了表面癥狀但并沒(méi)有解決問(wèn)題。它也有可能無(wú)法解決極端情況下的癥狀。 對(duì)具有很多列的龐大的結(jié)果集合來(lái)說(shuō)它很慢。DISTINCT要執(zhí)行ORDER BY操作來(lái)消除重復(fù)。 對(duì)龐大的笛卡爾積集合來(lái)說(shuō)它很慢,還是需要加載很多的數(shù)據(jù)到內(nèi)存中。
使SQL更易讀(但在子查詢中沒(méi)有GROUP BY語(yǔ)句專業(yè)) 提升性能,像關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)能夠更容易優(yōu)化窗口函數(shù)
SQL排序很慢 SQL排序辦不到
評(píng)論
圖片
表情
