與我們合作
我們專注:網(wǎng)站策劃設(shè)計(jì)、網(wǎng)絡(luò)輿論監(jiān)控、網(wǎng)站優(yōu)化及網(wǎng)站營銷、品牌策略與設(shè)計(jì)
主營業(yè)務(wù):網(wǎng)站建設(shè)、移動端微信小程序開發(fā)、APP開發(fā)、網(wǎng)絡(luò)運(yùn)營、云產(chǎn)品·運(yùn)維解決方案
有一個品牌項(xiàng)目想和我們談?wù)剢?
您可以填寫右邊的表格,讓我們了解您的項(xiàng)目需求,這是一個良好的開始,我們將會盡快與您取得聯(lián)系。當(dāng)然也歡迎您給我們寫信或是打電話,讓我們聽到您的聲音
您也可通過下列途徑與我們?nèi)〉寐?lián)系:
地 址: 上海市長寧區(qū)華寧國際7L
電 話: 400-825-2717(咨詢專線)
電 話: 13054973230(售后客戶服務(wù))
網(wǎng) 址: http://www.iql58e.cn
傳 真: 021-61488448
郵 箱: admin@wumujituan.com
快速提交您的需求 ↓
WordPress優(yōu)化,做好本地化優(yōu)化和緩存,讀寫分離
發(fā)布日期:2024-06-12 瀏覽次數(shù):29794
WordPress生態(tài)更豐富,有點(diǎn)什么問題搜索就能解決。國內(nèi)的所謂開源免費(fèi)幾乎都是養(yǎng)豬待宰,謹(jǐn)慎商用。
說wp卡頓的是沒有優(yōu)化好,wepublish的WP-China-Plus 就是解決引用國外Google字體和js、官方市場被qiang造成的卡頓問題。
wp的主要瓶頸在mysql上,特別是wp-post數(shù)據(jù)表,如果能用云數(shù)據(jù)庫MySQL 更好。
至于運(yùn)行效率,用opcache緩存PHP腳本,加上Redis或者M(jìn)emcached緩存數(shù)據(jù)庫查詢,可大幅提高速度。
如果有點(diǎn)技術(shù),可以用WordPress自帶的rest-api,做headless讀寫分離,再加上Elasticsearch搜索,都是很成熟的解決方案。
無交互的小網(wǎng)站就用WP-Super-Cache或或SIMPLY STATIC生成全站靜態(tài),套個CDN,利用不間斷服務(wù),緩存時間久一點(diǎn)。
WordPress官方出品的HyperDB 是一個非常的數(shù)據(jù)庫類,它取代了一些 WordPress 內(nèi)置的數(shù)據(jù)庫功能。主要區(qū)別是:
* HyperDB 可以連接到任意數(shù)量的數(shù)據(jù)庫服務(wù)器,
* HyperDB 檢查每個查詢以確定合適的數(shù)據(jù)庫。
它支持:
讀寫服務(wù)器(復(fù)制)
可配置的讀寫優(yōu)先級
本地和遠(yuǎn)程數(shù)據(jù)中心
私人和公共網(wǎng)絡(luò)
不同數(shù)據(jù)庫/主機(jī)上的不同表
智能后寫主讀
故障主機(jī)的故障轉(zhuǎn)移
用于分析的統(tǒng)計(jì)信息
WordPress 多站點(diǎn)
docker管理系統(tǒng)的URLOS有相關(guān)解決方案:https://www.urlos.com/urlos-document/introduction/mysql-master-slave.html
數(shù)據(jù)庫一主多備實(shí)現(xiàn)的數(shù)據(jù)庫主從集群,修改db-config.php內(nèi)的數(shù)據(jù)庫讀寫分離:
$wpdb->add_database(array(
'host' => 'mysql57001_master', // 主要數(shù)據(jù)庫地址
'user' => 'wordpress0_3c9db',
'password' => 'V4ex41r^pGU2E^7TP7l;cUaqcHLxaGa7nQvzz6CPA',
'name' => 'wordpress0_3c9db',
'write' => 1, // 給主要數(shù)據(jù)可寫入
'read' => !defined('DB_HOST_RPL1') ? 1 : 0, // 當(dāng)從數(shù)據(jù)庫不可用時主要數(shù)據(jù)庫才可讀取,如果從數(shù)據(jù)庫可用則從從數(shù)據(jù)庫讀取。
));
if(defined('DB_HOST_RPL1')):
$wpdb->add_database(array(
'host' => 'mysql57001_slave', // 從數(shù)據(jù)庫地址
'user' => 'wordpress0_3c9db',
'password' => 'V4ex41r^pGU2E^7TP7l;cUaqcHLxaGa7nQvzz6CPA',
'name' => 'wordpress0_3c9db',
'write' => 0, // 從數(shù)據(jù)庫不可寫入
'read' => 1, // 從數(shù)據(jù)庫可讀取
));
endif;
一般小網(wǎng)站無需那么多優(yōu)化。
如果是使用寶塔面板,用Nginx+Redis Cache緩存提速網(wǎng)站,
配合WordPress插件Nginx Helper ,當(dāng)我們發(fā)布新文章,修改文章,通過評論,修改評論自動清理緩存.
Cache Master 是一個非常輕量級和高性能的緩存插件,可以動態(tài)加速您的 WordPress 網(wǎng)站。支持 File、Redis、Memcache、Memcached、APC、APCu、WinCache、MySQL、SQLite、MongoDB 等多達(dá) 10 種緩存驅(qū)動
wepublish耗子分享:
WordPress 使用SQL_CALC_FOUND_ROWS進(jìn)行數(shù)量統(tǒng)計(jì)并計(jì)算分頁,但是這個查詢語句在大數(shù)據(jù)量 (W+) 的情況下是很慢的,一個比較好的解決方法是將其替換成更為現(xiàn)代的COUNT語句。
<?PHP
/**
* Plugin Name: Fix WordPress Slow Queries
* Description: Fix WordPress Slow Queries
* Author: Mahdi Akrami
* Version: 1.0.0
*/
class FIX_WP_SLOW_QUERY {
public static function init () {
/**
* WP_Query
*/
add_filter ( 'found_posts_query', [ __CLASS__, 'add_found_rows_query' ], 999, 2 );
add_filter ( 'posts_request_ids', [ __CLASS__, 'remove_found_rows_query' ], 999 );
add_filter ( 'posts_pre_query', function ( $posts, \WP_Query $query ) {
$query->request = self::remove_found_rows_query ( $query->request );
return $posts;
}, 999, 2 );
add_filter ( 'posts_clauses', function ( $clauses, \WP_Query $wp_query ) {
$wp_query->fw_clauses = $clauses;
return $clauses;
}, 999, 2 );
}
public static function remove_found_rows_query ( $sql ) {
return str_replace ( ' SQL_CALC_FOUND_ROWS ', '', $sql );
}
public static function add_found_rows_query ( $sql, WP_Query $query ) {
global $wpdb;
$distinct = $query->fw_clauses['distinct'] ?? '';
$join = $query->fw_clauses['join'] ?? '';
$where = $query->fw_clauses['where'] ?? '';
$groupby = $query->fw_clauses['groupby'] ?? '';
$count = 'COUNT (*)';
if ( ! empty ( $groupby ) ) {
$count = "COUNT ( distinct $groupby )";
}
return "
SELECT $distinct $count
FROM {$wpdb->posts} $join
WHERE 1=1 $where
";
}
}
FIX_WP_SLOW_QUERY::init ();
請教大佬 Elasticsearch搜索 怎么搞,哪里有現(xiàn)成的源碼?
挺復(fù)雜的,寶塔內(nèi)置免費(fèi)的elasticsearch
網(wǎng)上也有部署Elasticsearch的方法,因?yàn)楹桶俣日緝?nèi)搜索引擎一樣不支持Https,更好是docker部署,
IP:9200端口訪問成功就是部署成功。
例外還要安裝kibana、ik分詞器
然后安裝https://wordpress.org/plugins/elasticpress/ 插件設(shè)置索引。

