WordPress加速已經(jīng)不是什么新鮮話題了,曾在一站長(zhǎng)論壇里看到一篇關(guān)于WordPress提速的文章,講了很多的方法,用了一大堆插件,可能是想把WordPress加速做到極致吧。但讀完后卻是一頭霧水,我覺得這樣往往適得其反。
創(chuàng)新互聯(lián)是一家專業(yè)提供蠡縣企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、網(wǎng)站制作、H5場(chǎng)景定制、小程序制作等業(yè)務(wù)。10年已為蠡縣眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。
這里,我說一下個(gè)人感覺一些高效可行的方法:
一.圖片加載延遲
即圖片歲下拉滾動(dòng)條依次顯示,這樣在很大程度上得到了提速,尤其是圖片比較多的站。方法很簡(jiǎn)單,自己去網(wǎng)上搜索一下,非常的多。
二.圖片本地緩存
包括JS、Flash等,把這些元素緩存后,用戶第二次再去訪問你的站時(shí),那速度將是秒開。推薦使用.htaccess緩存圖片,方法:直接在.htaccess中添加如下代碼:
# Image and Flash content Caching for One MonthFilesMatch “.(flv|gif|jpg|jpeg|png|ico|swf)$”Header set Cache-Control “max-age=2592000″/FilesMatch
這里說一下,WordPress評(píng)論者頭像gravatar,大家可能感覺到了,Gravatar明顯會(huì)拖慢 網(wǎng)站速度,以至于一些博客不讓顯示Gravatar頭像或用神秘人代替了。也有一些站點(diǎn)追求比較苛刻,本地化了Gravatar頭像,后者我不推薦,尤其 是網(wǎng)站評(píng)論較多,那將給服務(wù)器帶來巨大的壓力。
三.開啟wordpress的GZIP
首先你可以用站長(zhǎng)工具檢測(cè)一下代碼是否有必要壓縮
開啟gzip方法也很多,
方法1:使用gzippy插件,直接安裝啟用即可。
方法2:在Cpanel面板中實(shí)現(xiàn)
C面板中有個(gè) Optimize Website 圖標(biāo),點(diǎn)擊進(jìn)入后選中 Compress all content,Update settings即可開啟我們的網(wǎng)站加速功能~當(dāng)然,我們也可以根據(jù)自己的需要,選擇第三項(xiàng),壓縮指定的類型以節(jié)約服務(wù)器資源。
方法3:通過.htaccess實(shí)現(xiàn),加入規(guī)則:
ifmodule mod_deflate.c
AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-httpd-php application/x-javascript
/ifmodule
四:靜態(tài)化頁面減少對(duì)數(shù)據(jù)庫的查詢
wp super cache插件 它把整個(gè)網(wǎng)頁直接生成 HTML 文件,這樣 Apache 就不用解析 PHP 腳本,通過使用這個(gè)插件,能使得你的 WordPress 博客將顯著的提速。
當(dāng)然,如果你不靜態(tài)化頁面,也可以緩存數(shù)據(jù)庫,DB cache插件比較不錯(cuò)。
小結(jié):
如果這四大方法你都用上了,那你的WordPress速度提升基本已經(jīng)發(fā)揮的淋漓盡致了,最后我們要注 意一下,經(jīng)常在打開你博客的時(shí)候,觀察狀態(tài)欄的加載情況。見過一些站,因?yàn)槭褂昧送獠縅S結(jié)果那個(gè)站點(diǎn)掛掉的時(shí)候?qū)е伦约旱恼军c(diǎn)整個(gè)都打不開。還有就是經(jīng) 常清理和優(yōu)化你的數(shù)據(jù)庫,這一點(diǎn)是至關(guān)重要的,數(shù)據(jù)庫在查詢中產(chǎn)生碎片,WordPress在運(yùn)行時(shí)也會(huì)殘留一些垃圾,尤其是代碼高亮插件和 WordPress自動(dòng)保存功能。
1、使用高效的緩存插件
WordPress的插件們是非常有用的, 我推薦一款緩存插件可以改善頁面載入時(shí)間,它就是W3 Total Cache,有了這個(gè)插件之后咱就不再推薦你其他緩存插件了,因?yàn)樗芯彺娌寮械墓δ芩加辛?,而且安裝和使用非常方便。
擁有這款插件之后,你的頁面載入速度會(huì)加快,因?yàn)榫W(wǎng)站的主要元素已經(jīng)被緩存了。
2. 使用內(nèi)容分發(fā)網(wǎng)絡(luò) (CDN)
基本上所有你喜歡的大網(wǎng)站都會(huì)使用CDN。簡(jiǎn)單來說,CDN是把你站點(diǎn)上的文件們(CSS\JS\圖片等)發(fā)布到最接近用戶所在的網(wǎng)絡(luò)區(qū)域,讓用戶就近下載,這樣就能提高站點(diǎn)運(yùn)行速度。在國(guó)內(nèi)ChinaCache是比較有名的CDN供應(yīng)商,不過價(jià)格貴了一些,像各大門戶網(wǎng)站,比如騰訊、新浪、網(wǎng)易等等都是用ChinaCache。所以不管你在哪里,訪問這些門戶網(wǎng)站都會(huì)覺得速度很快。當(dāng)然啦,對(duì)于小站來說,這個(gè)成本可能會(huì)高一些,
所以,你無論是在南方,或者北方,還是在北美,訪問這些門戶網(wǎng)站,感覺速度都很快,最主要的原因之一就是CDN發(fā)揮了效果。一般小網(wǎng)站是用不起這服務(wù)的,所以慢點(diǎn)就慢點(diǎn)了吧,可以租用互聯(lián)互通的6線機(jī)房(6線機(jī)房是指包括網(wǎng)通、電信、鐵通、移動(dòng)、聯(lián)通、教育網(wǎng)等多線接入的骨干網(wǎng)IDC機(jī)房,徹底消除各地網(wǎng)絡(luò)瓶頸,保證互聯(lián)網(wǎng)訪問暢通無阻的高速機(jī)房。)
順便提一下,還有一個(gè)Wordpress插件叫Free-CDN,號(hào)稱也能達(dá)到類似的效果,雖然我還沒有做過測(cè)試…
3、圖片優(yōu)化很重要
Yahoo! 有一個(gè)圖片優(yōu)化軟件叫Smush.it可以最大程度無損壓縮圖片,不過,除非你超級(jí)有耐心,否則一張張壓縮圖片的話太浪費(fèi)時(shí)間了,好在,還有一個(gè)很給力的WP插件叫WP-SmushIt,這貨可以為你網(wǎng)站上所有的圖片做一次性壓縮,所以沒有理由不去用它。
4、優(yōu)化你的WP數(shù)據(jù)庫
你可以用WP-Optimize這個(gè)插件來優(yōu)化你的WP數(shù)據(jù)庫(清理spam,反復(fù)改版的文章,草稿,表格等等為你的服務(wù)器騰出更多空間從而提升效率);還有一些插件如WP-Cleaner,DB-Manger等。
5、開啟防盜鏈機(jī)制
盜鏈?zhǔn)菐挼母`賊,當(dāng)其他網(wǎng)站直接引用你站點(diǎn)的圖片的時(shí)候,這會(huì)影響占用你本身的服務(wù)器資源從而影響網(wǎng)站運(yùn)行效率,你的站點(diǎn)越出名,就會(huì)有越多的人盜用你的圖片,解決方法是Wordpress有現(xiàn)成的插件Hotlink Protection。當(dāng)然也可以通過重寫htaccess文件來達(dá)到同樣的效果,欲深入了解的童鞋可以詢問自己的空間商如何設(shè)置。
6、為文件添加過期時(shí)間
關(guān)于這個(gè)文件過期時(shí)間,聽起來很玄乎,其實(shí)就是通過header報(bào)文來指定特定類型的文件在瀏覽器中的緩存時(shí)間。有些文件(例如樣式表中調(diào)用的背景圖片和一些裝飾性圖片)其實(shí)在很長(zhǎng)一段時(shí)間內(nèi)這些圖片都不會(huì)有很大的變化,所以對(duì)這類文件我們不妨設(shè)置長(zhǎng)一些的緩存時(shí)間,這樣瀏覽器就不需要每次從服務(wù)器下載這些文件而直接從緩存中讀取,這樣絕對(duì)可以提升加載速度。
7、為你的圖片添加延時(shí)加載
延時(shí)加載就是當(dāng)用戶停留在第一屏的時(shí)候,不加載任何第一屏以下的圖片信息,只有當(dāng)用戶把鼠標(biāo)往下滾動(dòng)的時(shí)候,這些圖片才開始加載。這玩意兒不僅可以提升站點(diǎn)載入速度,更是可以節(jié)省帶寬。要輕松的擁有這項(xiàng)功能,請(qǐng)安裝WP的jQuery Image Lazy Load 插件吧。
8、控制文章草稿存數(shù)數(shù)
通常一篇博文我會(huì)保存10次以上的草稿,而Wordpress會(huì)無限制的存儲(chǔ)每個(gè)草稿;如果我的博文已經(jīng)發(fā)布了,為啥我還需要這些儲(chǔ)存的草稿文章呢?所以這就是為啥我會(huì)用 Revision Control 插件來確保這些草稿內(nèi)容的最小化。通常我會(huì)設(shè)置只存儲(chǔ)2-3篇草稿來防止萬一,但存儲(chǔ)的數(shù)量絕對(duì)不會(huì)太高,否則你的WordPress backend只會(huì)被這些無意義的內(nèi)容塞滿從而降低運(yùn)行效率。
MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),目前屬于 Oracle 旗下產(chǎn)品。MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一,在 WEB 應(yīng)用方面,MySQL是最好的 RDBMS (Relational Database Management System,關(guān)系數(shù)據(jù)庫管理系統(tǒng)) 應(yīng)用軟件?!翱偸窃跒?zāi)難發(fā)生后,才想起容災(zāi)的重要性??偸窃诔赃^虧后,才記得曾經(jīng)有人提醒過。”,所以此處列出一些MySQL的必要的優(yōu)化和建議。
1. 核心類
? 不在數(shù)據(jù)庫做計(jì)算,cpu計(jì)算務(wù)必移至業(yè)務(wù)層;
? 控制單表數(shù)據(jù)量,單表記錄控制在千萬級(jí);
? 控制列數(shù)量,字段數(shù)控制在20以內(nèi);
? 平衡范式與冗余,為提高效率可以犧牲范式設(shè)計(jì),冗余數(shù)據(jù);
? 拒絕3B(big),大sql,大事務(wù),大批量;
2. 字段類
? 用好數(shù)值類型
tinyint(1Byte)
smallint(2Byte)
mediumint(3Byte)
int(4Byte)
bigint(8Byte)
bad case:int(1)/int(11)
? 有些字符轉(zhuǎn)化為數(shù)字
例如:用int而不是char(15)存儲(chǔ)ip
? 優(yōu)先使用enum或set
例如:sex enum (‘F’, ‘M’)
? 避免使用NULL字段
NULL字段很難查詢優(yōu)化
NULL字段的索引需要額外空間
NULL字段的復(fù)合索引無效
bad case:
name char(32) default null
age int not null
good case:
age int not null default 0
? 不在數(shù)據(jù)庫里存圖片
3. 索引類
? 謹(jǐn)慎合理使用索引
改善查詢、減慢更新
索引一定不是越多越好(能不加就不加,要加的一定得加)
覆蓋記錄條數(shù)過多不適合建索引,例如“性別”
? 字符字段必須建前綴索引
? 不在索引做列運(yùn)算
bad case:
select id where age +1 = 10;
? innodb 主鍵合理使用自增列
主鍵建立聚簇索引
主鍵不應(yīng)該被修改
字符串不應(yīng)該做主鍵
如果不指定主鍵,innodb會(huì)使用唯一且非空值索引代替
? 不用外鍵,請(qǐng)由程序保證約束
4. sql類
? sql語句盡可能簡(jiǎn)單
一條sql只能在一個(gè)cpu運(yùn)算
大語句拆小語句,減少鎖時(shí)間
一條大sql可以堵死整個(gè)庫
? 簡(jiǎn)單的事務(wù)
事務(wù)時(shí)間盡可能短
bad case:
上傳圖片事務(wù)
? 避免使用觸發(fā)器,用戶自定義函數(shù),請(qǐng)由程序取而代之
? 不用select *
消耗cpu,io,內(nèi)存,帶寬
這種程序不具有擴(kuò)展性
? OR改寫為IN()
? OR改寫為UNION
PS:最新的mysql內(nèi)核已經(jīng)進(jìn)行了相關(guān)優(yōu)化
? limit高效分頁
limit越大,效率越低
select id from t limit 10000, 10;
應(yīng)該改為 =
select id from t where id 10000 limit 10;
? 使用union all替代union,union有去重開銷
? 盡量不用連接join
? 務(wù)必請(qǐng)使用“同類型”進(jìn)行比較,否則可能全表掃面
? 打散批量更新
? 使用新能分析工具
show profile;
mysqlsla;
mysqldumpslow;
explain;
show slow log;
show processlist;
show query_response_time(percona)
Wordpress 是 PHP 和 MySQL 結(jié)合的內(nèi)容管理系統(tǒng)。
可以搭建很多類型網(wǎng)站:
個(gè)人博客
WordPress 最早的定位就是個(gè)人博客,可以很輕松的放上內(nèi)容,進(jìn)行分享內(nèi)容。
企業(yè)網(wǎng)站
因?yàn)?WordPress 的安全性,很多人就用來搭建企業(yè)網(wǎng)站,畢竟很多功能都可以通過插件來實(shí)現(xiàn),搭建起來就很輕松。朗沃教育的官網(wǎng)就是。
BBS論壇--社交網(wǎng)絡(luò)
創(chuàng)建自己的社交網(wǎng)站就像在WordPress中設(shè)置BuddyPress這樣的插件一樣簡(jiǎn)單。
購買型網(wǎng)站
使用WordPress的一種常用方法是創(chuàng)建一個(gè)在線商店。
WordPress使創(chuàng)建一個(gè)在線商店變得非常容易。得益于WooCommerce這樣的插件
創(chuàng)辦視頻網(wǎng)站
可以使用WooCommerce HTML5視頻插件將視頻添加到的在線商店產(chǎn)品描述中。
基本上所有的網(wǎng)站都可以用 WordPress 來搭建,很多功能都可以通過插件來實(shí)現(xiàn)。
Wordpress 最大的優(yōu)點(diǎn)就是開源、插件多,很多功能都可以通過插件實(shí)現(xiàn)。
這既是 WordPress 的后臺(tái)。
朗沃教育 - WordPress 搭建的網(wǎng)站后臺(tái)