開發效能良好的資料庫
從專案最開始的計畫階段就應該開始資料庫優化:在資料庫開發結束之後,再想提高效能就很困難了。對於設計錯誤的資料庫,隨著開發工作的進展,修復其中的問題所要付出的代價將會顯著增加。對於在專案的開始階段只需要5分鐘的時間就可以精心實施的約束,如果要在資料庫使用數年之後再來修復和實施它,將會花費幾個星期的時間。
速度慢和速度快而且穩定的資料庫之間的最大區別並不在於精妙的伺服器優化技術,或者查詢優化器提示。在我看來,下面的5個因素將會決定資料庫是否具有良好的效能。如果不能滿足其中任何乙個因素,資料庫的速度就會變得很慢。
1. 資料驅動的、規範化的資料庫物理設計。
2. 完善的和平衡的索引策略。
3. 使用基於集合的查詢方式編碼,並避免以過程化(基於行的方式)來運算元據。
4. 出色地使用資料庫約束和觸發器來實施業務規則。
5. 精心地設計表、索引和**以避免鎖的爭用。
在公升級硬體之前進行資料庫優化是一種好的開發方法和習慣。通過優化設計和**來提高效能的方法要遠遠勝於通過購買新硬體來提高效能的方法。
最佳實踐:我認為單獨使用硬體來提高效能實際上將會在較長的時期內妨礙效能的提高,因為管理層將會認為他們已經為優化投過了資,從而不再會重視問題的真正原因。此外,通過硬體提高效能的方法將有可能在一段時間內掩蓋造成問題的真正原因,這好比是乙個「繃帶與**」的問題。
web開發效能優化 資料庫篇
1 查詢出的資料量過大 可以採用多次查詢,其他的方法降低資料量 盡量採取分頁查詢資料 2 鎖或者死鎖 這也是查詢慢最常見的問題,是程式設計的缺陷 3 返回了不必要的行和列 用 or的字句可以分解成多個查詢,並且通過 union 鏈結多個查詢。它們的速度只與是否使用索引有關,如果查詢需要用到聯合索引,...
Android開發效能優化
1 盡量不適用靜態引用,以避免記憶體溢位 2 對進行壓縮 3 listview的優化 4 自定義view中減少measure layout draw 中的耗時操作即它們執行次數 5 不在ui執行緒總做耗時操作,網路請求 資料庫操作 複雜計算等放在子執行緒 6 webview退出時手動銷毀 方法未知 ...
web開發效能優化
1 查詢出的資料量過大 可以採用多次查詢,其他的方法降低資料量 盡量採取分頁查詢資料 2 鎖或者死鎖 這也是查詢慢最常見的問題,是程式設計的缺陷 3 返回了不必要的行和列 用or的字句可以分解成多個查詢,並且通過union鏈結多個查詢。它們的速度只與是否使用索引有關,如果查詢需要用到聯合索引,用un...