1、儲存引擎選擇:如果資料表需要事務處理,應該考慮使用innodb,因為它完全符合acid特性。
如果不需要事務處理,使用預設儲存引擎myisam是比較明智的
2、分表分庫,主從。
3、對查詢進行優化,要盡量避免全表掃瞄,首先應考慮在 where 及 order by 涉及的列上建立索引
4、應盡量避免在 where 子句中對字段進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃瞄
5、應盡量避免在 where 子句中使用 != 或 <> 操作符,否則將引擎放棄使用索引而進行全表掃瞄
6、應盡量避免在 where 子句中使用 or 來連線條件,如果乙個欄位有索引,乙個字段沒有索引,將導致引擎放棄使用索引而進行全表掃瞄
7、update 語句,如果只更改1、2個字段,不要update全部字段,否則頻繁呼叫會引起明顯的效能消耗,同時帶來大量日誌
8、對於多張大資料量(這裡幾百條就算大了)的表join,要先分頁再join,否則邏輯讀會很高,效能很差。
1.優化索引、sql 語句、分析慢查詢;
2.設計表的時候嚴格根據資料庫的設計正規化來設計資料庫;
3.使用快取,把經常訪問到的資料而且不需要經常變化的資料放在快取中,能節約磁碟io
4.優化硬體;採用ssd,使用磁碟佇列技術(raid0,raid1,rdid5)等
5.採用mysql 內部自帶的表分割槽技術,把資料分層不同的檔案,能夠提高磁碟的讀取效率;
6.垂直分表;把一些不經常讀的資料放在一張表裡,節約磁碟i/o;
7.主從分離讀寫;採用主從複製把資料庫的讀操作和寫入操作分離開來;
8.分庫分表分機器(資料量特別大),主要的的原理就是資料路由;
9.選擇合適的表引擎,引數上的優化
10.進行架構級別的快取,靜態化和分布式;
11.不採用全文索引;
12.採用更快的儲存方式,例如 nosql儲存經常訪問的資料**
儲存過程是乙個可程式設計的函式,它在資料庫中建立並儲存。它可以有sql語句和一些特殊的控制結構組成。當希望在不同的應用程式或平台上執行相同的函式,或者封裝特定功能時,儲存過程是非常有 用的。資料庫中的儲存過程可以看做是對程式設計中物件導向方法的模擬。它允許控制資料的訪問方式。
儲存過程通常有以下優點:
1、儲存過程能實現較快的執行速度
2、儲存過程允許標準元件是程式設計。
3、儲存過程可以用流程控制語句編寫,有很強的靈活性,可以完成複雜的判斷和較複雜的運算。
4、儲存過程可被作為一種安全機制來充分利用。
5、儲存過程能夠減少網路流量
優點:
資料儲存原理 查詢優化
從乙個簡單的例子出發,通過不同資料量的階段來看資料儲存系統的演化過程,幫助大家了解資料庫儲存系統中查詢優化的一些基本原理和思路。例子 乙個圖書管理系統,有id,bookname,author等字段 需求是根據id來獲得書名和作者等資料。模式一 小資料量 可以採用hashmap的形式,以id為key,...
資料庫儲存優化
一 資料庫設計過程中的優化 資料庫設計過程中的優化,指的是索引優化及欄位設計的優化等。mysql的索引優化尤為重要,合理地進行索引優化,可以大大提高資料庫效能,避免資料庫瓶頸。在進行資料庫設計時,應該盡量把資料庫設計得佔磁碟空間更小。資料庫設計過程中的一些優化技巧如下 盡可能使用更小的整數型別 me...
資料庫查詢優化
方法 1 1.對查詢進行優化,應盡量避免全表掃瞄,首先應考慮在 where 及 order by 涉及的列上建立索引。步驟閱讀 22.應盡量避免在 where 子句中對字段進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃瞄,如 select id from t where num is...