一、什麼是sql的編譯?
當數據庫接收到sql時,需要詞法和語義的解析,優化sql,制定執行計劃。每次編譯都比較耗時間。
二、如何減少編譯?
在實際開發中,對數據庫的基本操作就是curd,每次執行sql都有經過編譯過程,那麼就需要消耗大量的時間,因此就有了預編譯的過程,預編譯可以想象成將sql變成一個函數,在需要的時候傳參進行即可使用。這樣就能達到一次編譯,多次運行的效果。
三、預編譯的實現方法
通過prepareStatement和佔位符完成。
四、緩存預編譯
sql進行編譯後需要緩存起來纔可以循環使用,因此預編譯需要消耗一部分內存,這也是一個用空間換取時間的例子。在計算機領域中,要麼就是時間換空間,要麼就是空間換時間。
總之,預編譯就是將sql變成一個函數,函數的變量用佔位符表示,後面注入的參數系統就會默認它僅僅是一個參數,而不會認爲是一個sql語句,不會再次編譯,這樣就可以防止sql注入。
五、如何實現預編譯
。。。