apache伺服器優化、php優化、mysql優化
對於程式開發人員而言,目前使用最流行的兩種後台資料庫即為mysql and sql server。這兩者最基本的相似之處在於資料儲存和屬於查詢系統。如果你想建立乙個.net伺服器體系,這一體系可以從多個不同平台訪問資料,參與資料庫的管理,那麼你可以選用sql server伺服器。如果你想建立乙個第三方動態**,從這一站點可以從一些客戶端讀取資料,那麼mysql將是乙個不錯的選擇。
1、編譯和安裝mysql
通過你的系統挑選可能最好的編譯器,你通常可以獲得10-30%的效能提高。在linux/intel平台上,用pgcc(gcc的奔騰晶元優化版)編譯mysql。然qubnzihf而,二進位制**將只能執行在intel奔騰cpu上。 對於一種特定的平台,使用mysql參考手冊上推薦的優化選項。用你將使用的字符集編譯mysql。 靜態編譯生成mysqld的執行檔案(用--with-mysqld-ldflags=all-static)並用strip sql/mysqld整理最終的執行檔案。 注意,既然mysql不使用c++擴充套件,不帶擴充套件支援編譯mysql將贏得巨大的效能提高。
2、優化表
mysql擁有一套豐富的型別。應該對每一列嘗試使用最有效的型別。analyse過程可以幫助你找到表的最優型別:select * from table_name procedure analyse()。對於不儲存null值的列使用not null,這對你想索引的列尤其重要。 將isam型別的表改為myisam。用固定的**式建立表。
3、正確使用索引
索引用來快速地尋找那些具有特定值的記錄,所有mysql索引都以b-樹qubnzihf的形式儲存。如果沒有索引,執行查詢時mysql必須從第乙個記錄開始掃瞄整個表的所有記錄,直至找到符合要求的記錄。如果表有1000個記錄,通過索引查詢記錄至少要比順序掃瞄記錄快100倍。
假設我們建立了乙個名為people的表:
然後,我們完全隨機把1000個不同name值插入到people表。
但是索引也是有缺點的,首先,索引要占用磁碟空間。通常情況下,這個問題不是很突出。但是,如果你建立每一種可能列組合的索引,索引檔案體積的增長速度將遠遠超過資料檔案。如果你有乙個很大的表,索引檔案的大小可能達到作業系統允許的最大檔案限制。如果mysql能估計出它將可能比掃瞄整張表還要快時,則不使用索引。另外,對於需要寫入資料的操作,比如delete、update操作,索引會降低它們的速度。這是因為mysql不僅要把改動資料寫入資料檔案,而且它還要把這些改動寫入索引檔案。
4、 減少使用字符集編譯mysql
mysq程式設計客棧l目前提供多達24種不同的字符集(許多語言版本),為全球使用者以他們自己的語言插入或檢視表中的資料。預設情況下,mysql安裝所有者這些字符集,所以最好的選擇是安裝一兩種你需要的就可以了(中文、英文)。程式設計客棧
總結:本文介紹了如何在現有硬體條件下提高系統效能,網路管理員充分了解自己的計算機和網路,從而找到真正的瓶頸所在。在預算短缺的今天,理解如何優化系統效能比以往任何時候都重要。一味地硬體投資並不是能夠讓人們接受的辦法,而且還也不一定生效。
以上就是lamp伺服器效能優化技巧,文章到此結束。您的lamp伺服器優化好沒呢?
本文標題: lamp伺服器效能優化技巧之mysql優化
本文位址:
LAMP伺服器效能優化技巧之Apache伺服器優化
1.zend performance suite簡介 對於apache要把 php 編譯其中,或者採用 dso 動態共享物件 模式,不要採用 cgi 方式。採用dso最重要的原因是效率。apache是模組化設計的,所以它可以載入各種各樣的伺服器端指令碼直譯器來支援動態的網頁。但是隨著頁面訪問量的增大...
c 伺服器開發之效能優化
為什麼要寫這篇文章?聊技術的時候,談到記憶體問題 cpu問題 效率問題的時候,無疑是考量乙個工程師的實戰水平,作為c 開發工程師,沒有自己解決以上問題的專業手段,或許就是缺陷。我之所以寫這個文章,主要是為了記錄 分享我的辦法。我之前寫過記憶體洩漏的一篇文章 其實也是一種手段,如果為你所用,聊技術的時...
前端效能優化之HTTP伺服器篇
因tomcat處理靜態資源的速度比較慢,所以首先想到的就是把所有靜態資源 js,css,image,swf 提到單獨的伺服器,用更加快速的http伺服器,這裡選擇了nginx了,nginx相比apache,更加輕量級,配置更加簡單,而且nginx不僅僅是高效能的http伺服器,還是高效能的反向 伺服...