天天看點

資料庫最佳實踐

1、表名、列名有效字元集:小寫字母、數字、下劃線,如student_course

2、表名、列名用單數而不是負數,如student,而不是students

3、表名、列名不使用不必要的字首或字尾,如tbl_school, school_table

4、使用整數作為ID字段,也許現在沒有這個必要,但是将來需要,例如關聯表,索引等等

5、資料庫中的密碼要加密,到應用中再解密(其實就是散列存儲、單向加密)

6、使用整數字段做索引,否則會帶來很大的性能問題 

7、使用 bit 作為布爾字段,使用整數或者varcha是浪費。同時,這類字段應該以“is”開頭

8、要經過認證才能通路資料庫,不要把管理者權限給每一個使用者

9、盡量避免使用“select *”,而使用“select [required_column_list]”以獲得更好的性能

10、假如程式代碼比較複雜,使用ORM架構,例如hibernate,iBatis。ORM架構的性能問題可以通過詳細的配置去解決。 

11、分割不常使用的資料表到不同的實體存儲以獲得更好的性能。

12、對于關鍵資料庫,使用安全備份系統,例如叢集,同步等等 

13、使用外鍵,非空等限制來保證資料的完整性,不要把所有的東西都扔給程式;但是對于網際網路程式,由于應用層更友善水準擴充,是以這個環境應該減少外鍵的使用

14、應該有資料庫設計寫文檔

15、對于經常使用的查詢和大型資料表,要使用索引。資料分析工具可以幫助你決定如何建立索引 

16、image和blob字段不應該定義在常用的資料表中,否則會影響性能

17、适當的應用範式(Normalization)。Normalization做的不夠會導緻資料備援,而過度Normalization 會導緻太多的join,影響性能。

18、多花點時間在資料庫設計上,否則你将來會付出加倍的時間來償還

<a href="http://www.javacodegeeks.com/2012/02/20-database-design-best-practices.html" target="_blank">http://www.javacodegeeks.com/2012/02/20-database-design-best-practices.html</a>

本文轉自 h2appy  51CTO部落格,原文連結:http://blog.51cto.com/h2appy/1627697,如需轉載請自行聯系原作者