程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> php和mysql優化幾點

php和mysql優化幾點

編輯:關於MYSQL數據庫

MySQL優化

1.      記錄慢查詢日志

2.      合理使用索引

3.      explain sql語句

4.      避免聯合查詢

5.      設置查詢緩沖

6.      數據量大和高負載時進行分表減少數據庫訪問壓力

7.      優化sql

字段優化

8.      使用正確合適的類型,不要將數字存儲為字符串。

9.      盡可能地使用最有效(最小)的數據類型。MySQL有很多節省磁盤空間和內存的專業化類型。

10. 盡可能使用較小的整數類型使表更小。例如,MEDIUMINT經常比INT好一些,因為MEDIUMINT列使用的空間要少25%。

11. 如果可能,聲明列為NOT NULL。它使任何事情更快而且每列可以節省一位。注意如果在應用程序中確實需要NULL,應該毫無疑問使用它,只是避免 默認地在所有列上有它。

12. 對於MyISAM表,如果沒有任何變長列(VARCHAR、TEXT或BLOB列),使用固定尺寸的記錄格式。這比較快但是不幸地可能會浪費一些空間。即使你已經用CREATE選項讓VARCHAR列ROW_FORMAT=fixed,也可以提示想使用固定長度的行。

13. 使用sample character set,例如latin1。盡量少使用utf-8,因為utf-8占用的空間是latin1的3倍。可以在不需要使用utf-8的字段上面使用latin1,例如mail,url等。

索引優化

1.       要選擇性的使用索引。在變化很少的列上使用索引並不是很好,例如性別列。

2.      在Unique列上定義Unique index。

3.      避免建立使用不到的索引。

4.      避免重復的索引。

5.      在查詢中要使用到索引(使用explain查看),可以減少讀磁盤的次數,加速讀取數據。

6.      Optimize table可以壓縮和排序index,注意不要頻繁運行。

7.      Analyze table可以更新數據。

MyISAMInnoDB的區別

MyISAM缺點

1) 不支持事務,宕機會破壞表
2) 使用較小的內存和磁盤空間
3) 基於表的鎖,並發更新數據會出現嚴重性能問題
4) MySQL只緩存Index,數據由OS緩存

InnoDB優點

1) 支持事務,ACID,外鍵。
2) Row level locks。
3) 支持不同的隔離級別。
4) 和MyISAM相比需要較多的內存和磁盤空間。
5) 沒有鍵壓縮。
6) 數據和索引都緩存在內存hash表中

PHP優化

緩存技術

Memcache內存緩存

PHP編譯緩存

頁面緩存squid

文件緩存

頁面靜態化

啟用apache壓縮輸出和緩沖

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved