專案優化應該從那幾個方面進行
首先一個專案的優化要從首頁、資料庫、等方面進行優化
前端:
1)壓縮js/css檔案,壓縮檔案,會將檔案中的所有空格去掉,並且將複雜的變數名簡單化。
2)在載入js/css檔案時,我們需要將公共的js/css檔案載入在header頭中,其他的載入在相應的body中,如果我們不這樣做,就會重複的載入js/css檔案,
3)應該把公共的js檔案放在header頭中,載入時一定要注意載入順序,因為js檔案會阻塞載入,可能會改變表的dom結構。css檔案和圖片載入會同步進行。
4)頁面顯示圖片尺寸與圖片真實尺寸保持一致。
5)合併頁面小圖示,一次性載入進來,然後進行圖片定位,找出需要用到的圖片
頁面dom元素定位:position屬性,絕對定位absolute/相對定位relative
6)合併js/css檔案,合併載入
7)靜態化
為什麼靜態化可以提高訪問速度
頁面靜態化不需要訪問資料庫查詢資料
頁面靜態化省去了程式碼的執行程式,直接將頁面載入進來
下面介紹的是資料庫的優化
資料庫的優化我們可以在以下的幾個方面入手
1)慢查詢
使用慢查詢,我們需要修改一下配置檔案。
開啟慢日誌查詢
設定你允許一條sql語句最大的查詢時間
下面和大家說一下應該怎樣開啟慢查詢
1)在mysql客戶端輸入命令:show variables like '%quer%'; 檢視慢查詢是否開啟
進入以後我們需要找出兩行:long_query_time,slow_query_log,前面的一個是判斷時間,看看查詢的時間在多長時間以上為超時,第二個是,看看慢查詢是否開啟。
2)開啟
在my.ini配置檔案的[mysqld]選項下增加:
slow_query_log=TRUE
slow_query_log_file=c:/slow_query_log.txt
long_query_time=3
3)重啟Apache2)分表
縱向分表:將操作不頻繁的表分離出來
橫向分表:可以按兩個維度進行分表:按時間分表,按使用者分表
3)索引
索引型別:複合索引,普通索引,唯一索引,主鍵索引,全文索引
唯一索引:可以有空值,一個表中可以有多個唯一索引
主鍵索引:不可以有空值,表中是唯一的。
複合索引:最左側原則,從最左邊進行篩選
4)分割槽
將資料儲存到不同的硬碟分割槽中
5)讀寫分離【主從複製】
把讀的操作和寫的操作分成兩個資料庫來進行,一個寫多個讀。
寫的資料庫的儲存引擎是innodb,支援事務,寫入的操作更快,即支援表鎖,也支援行鎖;myisam讀取的較快。
6)資料庫快取
7)設計表
8)sql語句優化
儘量不使用聯查
不要將表中資料全部查詢
9)分庫
10)負載均衡
負載http請求,用在高併發大量訪問的網站中。至少需要三臺伺服器。
A伺服器【代理伺服器】--》備用伺服器(keepalived軟體)
B處理請求
C處理請求
所有的請求都由A接收,並且分配,分配給其他的伺服器
請求的分配方式:輪詢【預設】,權重【能力大,責任就大】,ip_hash【根據ip地址來進行分配】