#Mysql 優化mysql
#服務器硬件linux
這是最簡單的一種方式,1升級硬盤通常數據庫服務器的瓶頸都在IO,若是是機械硬盤的話,能夠換個固態硬盤。或作磁盤陣列。2升級內存。sql
#mysql服務器優化數據庫
這種方式是經過,合理地修改Mysql的配置去實現的。將mysql遷移到linux上。服務器
#SQL語句優化 避免關聯子查詢數據結構
select a.sname,(select classname from class b where b.classid=a.classid) as classname from student a;改爲left join,具體就不寫了。nosql
#反範式化設計優化性能
冗餘必要字段 注意在業務表中別違反。會大大的下降系統的可維護性與數據的一致性。常常在維護一些老的項目時,吃盡了苦頭。幾個表中都有這個字段。我更改時,真不知道要改多少個地方。優化
#物理設計優化設計
建表時選擇合適的數據類型 當一個列能夠選擇多種數據類型時 1優先考慮數據類型 2其次是日期,時間類型 3最後是字符類型 4對於相同級別的數據類型,應該優先選擇佔用空間小的數據類型
#索引優化
- 注意索引順序與條件的關係,有個最佳左前綴原則。即:where的條件與索引的順序要一致,否則,將失效。如:索引順序爲A,B,C列。where a=1 and b=2 and c=3.完美走索引。若是是where c=3 and b=2 and a=1 這樣索引是不走索引的。若是是where a=1 and c=3 and b=2 那麼只走了a的索引。b,c都不起做用。這就是最佳左前綴原則。
#總結
在項目的優化中,利用好索引,可讓大家項目性能提高百倍。不少nosql的原理,也是在這個基礎上創建的。利用樹或哈希表這樣的數據結構來存儲數據,減小搜索時間。