大數據量的系統的數據庫結構如何設計:
1、把你表中經常查詢的和不常用的分開幾個表,也就是橫向切分
2、把不同類型的分成幾個表,縱向切分
3、常用聯接的建索引
4、服務器放幾個硬盤,把數據、日志、索引分盤存放,這樣可以提高IO吞吐率
5、用優化器,優化你的查詢
6、考慮冗余,這樣可以減少連接
7、可以考慮建立統計表,就是實時生成總計表,這樣可以避免每次查詢都統計一次
8、用極量數據測試一下
MySql 優化:
對 mysql 優化是一個綜合性的技術,主要包括:
1、表的設計合理性(符合 3NF)
2、添加適當索引(index)【四種:普通索引、主鍵索引、唯一索引 unique、全文索引】
3、分表技術(水平分割、垂直分割)
4、讀寫【update、delete、add】分離
5、儲存過程【模塊化編程,可以提高速度】
6、對 mysql 配置優化【配置最大並發數 my.ini,調整緩存大小】
7、mysql 服務器硬件升級
8、定期的去清除不需要的數據,定時進行碎片整理(MyISAM)
為什麼字段盡可能用NOT NULL,而不是NULL
字段盡可能用NOT NULL,而不是NULL,除非特殊情況。NULL為什麼經常被誤用?
1、NULL是創建數據表時默認的,初級或不知情的或怕麻煩的程序員不會注意這點。
2、很多人員都以為not null 需要更多空間,其實這不是重點。
3、重點是很多程序員覺得NULL在開發不用去判斷插入數據,寫sql語句的時候更方便快捷。