WP-PostViews 對網站性能造成的負面影響
WP-PostViews 插件的數據是保存在文章自定義欄位中的,在文章數量不多的時候,這不會有什麼問題。當文章數量達到數千篇之後,這個插件就開始影響 WordPress 性能了,該插件對 WordPress 性能造成的影響主要來自以下兩點:
- 每當有新用戶瀏覽文章時,插件就需要更新文章自定義欄位來增加該文章的瀏覽量統計數據。更新文章自定義欄位是一個比較耗時的資料庫操作,當網站並發用戶量提高時,這個操作對網站性能帶來的負面影響是非常可觀的。
- 基於自定義欄位的文章排序查詢也是一個比較耗時的資料庫操作,當我們使用該插件自帶的小工具或者使用 views 欄位進行自定義查詢時,會在一定程度上對網站性能造成影響,不過這個影響可以通過緩存來解決。
為了優化資料庫查詢,提高網站性能。我們對比了用戶量比較大的其他文章瀏覽量統計插件,最終決定使用 Post Views Counter 這個插件來代替 WP-PostViews 來統計和顯示文章數據。
Post Views Counter 插件對性能所做的優化
Post Views Counter 是一個簡單,快速且易於使用的插件,可以用來統計和顯示文章、頁面或自定義文章類型的瀏覽量。該插件對文章瀏覽量統計邏輯做了一些優化、來解決瀏覽量統計功能對資料庫帶來的負面影響。
- 使用自定義數據表記錄文章瀏覽量,更新瀏覽量時,只需要更新一個數據表,這個操作會快很多。
- 當 WordPress 站點設置了對象緩存時,該插件會把瀏覽量統計數據添加到對象緩存中,隔一段時間後,再更新到資料庫中。對象緩存可以是 Memcached、Redis 等內存資料庫,這個操作比直接更新資料庫快多了。
基於上面的兩點優化,Post Views Counter 對 WordPress 站點性能帶來的影響就小多了。
Post Views Counter 插件特色功能
- 支持 4 種統計瀏覽量數據的方法:PHP,Javascript,快速 AJAX 和 REST API,靈活性更大
- 一鍵導入 WP-PostViews 數據,更換插件不會丟失原有插件的數據。
- 可以設置計數間隔選項,過一段時間後重置瀏覽量統計數據,這個功能對於統計指定時間段的數據很有用。
- 可以設置嚴格模式,該模式下,插件會把訪問者的 IP 地址保存到數據中,即使用戶使用隱身模式或清空了 Cookie,還是會視為一次訪問。可以解決刷訪問量的問題。
- 可以在儀錶盤顯示一個瀏覽量統計小工具,小工具中以📈的方式顯示瀏覽量統計數據。
- 可選對象緩存支持,如果對象緩存可用,插件會先把統計數據保存在對象緩存中,每隔一段時間同步到數據中。
- 兼容 W3 Total Cache / WP Super Cache
- 兼容 WPML 和 Polylang
- 兼容 GDPR 和 Cookie Notice 插件
注意:為了永久保存文章瀏覽量數據,請把「Rest Data Inteval」設置為 0,否則隔一段時候,插件會自動重置瀏覽量統計數據。
如果您的 WordPress 站點文章數量非常多,或者並發訪問量比較大,又有統計文章瀏覽量的需求,建議您使用 Post Views Counter 代替 WP-PostViews 插件來實現文章瀏覽量統計功能,相信可以為網站帶來一定的性能提升。