程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql 數據庫設計

mysql 數據庫設計

編輯:關於MYSQL數據庫
innodb表正好相反;行級鎖表
互聯網服務,不算支付性的服務外,互動產品,新聞系統等等一般都是讀多,寫少。用myisam表比較合適。
表的設計
定長表:所有列的字段長度都是定長的。可以去查mysql的手冊不定長字段是VARCHAR、BLOB或TEXT。int char都是定長的,定長表占用空間會大。
動態表:就是字段不是都定長的。
定長表要比動態表檢索速度快。

軟件系統的設計習慣是把每張表都分清很明確的功能,比如用戶表都是用戶信息,如果需要同時從留言表取數據,又從用戶表取用戶信息的時候,就會采用聯合查 詢,有的時候一些操作還會用left,join等各種復雜sql語句,沒准還要用mysql的函數。如果是針對訪問量,讀取量很大的互聯網服務時,同時並 發去讀,數據量又大,很可怕。最好是如果數據不會修改,在常用的表上有冗余字段,能夠做到一次讀,把數據都拿到;可以有冗余的寫操作,但減少復雜的查詢操 作。

在設計表的時候要將這個表的所有字段類型占用的字節數求和,並乘以你的預期(如:存儲100W數據量),就是整張表未來會占用容量。

拆表 拆庫
拆表就是將一張表復制N多張,裡面分別存放不用內容的數據,數據的存放是用HASH算法來決定放入哪張表。
例如用戶表user,傳統情況就是一張表,拆表就是將表復制為user_01,user_02等裡面都存放了格式一樣的不同用戶數據。

拆庫和拆表類似,就是庫的復制。

拆表或拆庫有很多的HASH算法,主要目的就是減少表的數據量,用算法保證每個表的數據量平均,請求,讀寫操作被分攤降低壓力,而且安全,出了問題最多是一部分用戶受影響。缺點就是檢索不方便,需要另想辦法。

很多網站為了前期省事都會采用discuz的產品,如bbs,blog等,網上有不少關於這個產品的介紹和優化方法,沒細研究過,聽過一些網站介紹他們的 優化方法時,對於數據庫主要是采用主從的方法,將數據庫的讀寫分離來提高性能,但是個人覺得這種辦法在數據量到了規模的時候就OVER了,並發和讀寫操作 沒提升,數據也是會逐漸累計超過限制。

互聯網服務由於要應對大數據量,大請求量,所以在設計開發的時候就不要太學院派,不要力圖達到數據庫、程序的設計“優美”,性能是最要緊的。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved