mysql數據庫設計總結(個人經驗)

以下經驗,均是血和淚的教訓,爲了避免自己再犯,特此記錄。


1  圖片不能保存在數據庫中。

此話不絕對,但是如果圖片很多(幾乎每天數據中均存在圖片),那就千萬不能把圖片放在數據庫中。

對性能影響:表中數據30萬,執行查詢語句,5分鐘後仍在查詢(這是程序不能接受的)。 

去掉圖片,執行查詢語句,執行時間不到5s。


2 更新語句的更新條件儘量具體。

上面的話的意思是:如果更新數據,符合條件的數據很多,儘量把條件具體些,是更新的數據由多條變爲一條。

爲什麼這麼做:當數據上萬、上百萬時,每次更新操作將會時數據庫執行時間過長,導致正常的業務流程不能正常執行(如:與數據庫連接超時)。


3 mysql字符集一定要慎重選擇。

筆者常用的是:字符集:utf-8, 覈對:utf8_general_ci。


4不同的搜索引擎對性能影響不同。

mysql數據庫常用的搜索引擎有兩種:InnoDB和MyISAM 。其中innodb存儲引擎,特點支持外鍵、行鎖、非鎖定讀(默認情況下讀取不會產生鎖)、mysql-4.1開始支持每個innodb引擎的表單獨放到一個表空間裏。但是備份還原比較困難。 MyISam不支持事物,但是備份還原比較簡單。


5建立適當冗餘

對於數據庫中的字段建立適當冗餘,目的是犧牲空間換時間.


6一個方法儘量做最少的事

一個方法儘量做最少的事是指如果方法A既能支持a操作,又能支持b操作。比如一個方法既能支持界面A的綜合查詢,又能支持界面B的詳細查看,那方法A中包含的字段就會很多,可能導致查詢緩慢。


7適當的建立索引

對經常查詢的字段可以適當的建立索引,建立索引的優點在於可以加快查詢的速度,但是缺點在於會降低增刪改操作的時間。所以索引的建立要適當。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章