database相關的優化

2020-10-05 13:00:31

一:從JDBC程式設計的角度講,用preparedStatement一般來說比Statement效能高,因為在使用時,PreparedStatement會將SQL語句進行預編譯,每次執行的時候只需要將引數設定給相應的預留位置就可以執行。而使用Statement時,SQL語句時每次都要進行編譯,所以PreparedStatement的效率相對較高
二:有外來鍵約束時會影響到插入和刪除效能,如果程式能夠保證資料的完整性,那麼我們在設計資料庫時可以去掉外來鍵(就比如免檢產品,就是為了提高效率,選擇充分相信產品的製造商)
三:表中允許適當的冗餘,譬如,將姓名和密碼單獨從使用者表中獨立出來,在分析了業務的特點後,對資料庫中表做了優化後的解決方案,也就是說在有些情況下,我們設計資料庫時,可以適當的違反三個正規化的設計原則(三個正規化的簡單理解:

https://blog.csdn.net/zymx14/article/details/69789326?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

),來獲得更高更好的程式效能。
四:SQL語句全部大寫,特別是列名和表名全部大寫,因為資料庫中的語句執行機制是這樣的:sql語句–>發給Oracle伺服器–>語法檢查和編譯成為內部指令–>快取和執行指令。而資料庫在對語句進行檢查和編譯時,會自動將SQL語句轉換成大寫。
五:索引對查詢功能的優化改進,當經常查詢資料時,需要在表中建立索引,但是索引佔用磁碟空間,並且降低新增,刪除和更新行的速度,在多數情況下,索參照於資料檢索的速度優勢大大超過它的不足之處,但是,如果應用程式非常頻繁的更新資料或者磁碟空間有限,則可能需要限制索引的數量

其他方面的經驗:

https://blog.csdn.net/panyuxin_/article/details/80782085