Drupal中用Views XML來生成Sitemap
在前幾天寫的一篇博文《為網站添加圖片網站地圖》中我提到有三種辦法來實現網站地圖:
這是Views分類的頁面,點擊下面标題查看詳細文章内容:
在前幾天寫的一篇博文《為網站添加圖片網站地圖》中我提到有三種辦法來實現網站地圖:
最近發現有一台阿裡雲RDS數據庫服務器負載持續很高,CPU總是占滿,當前連接數超過幾十的時候網站就被卡得不能動了。除了升級RDS配置以外,可以仔細檢查慢查詢日志,發現這種查詢特别多:
Drupal裡面Views功能很方便、強大,而在PHP程序中調用Views的Page或者Block也很需要,有時還可以起到替代寫SQL語句的作用,不過需要帶參數變量Block的調用不太常見,以前用過也老是忘記調用辦法,昨天又花時間找了一下,現在就記錄下面,免得以後又到處去找。
Drupal網站的Views功能相對強大,特别是對于SQL不太熟悉的朋友來說Views的Web界面非常方便,而且數據庫查詢功能一點不弱,用Drupal這麼多年了不能用Views實現的查詢功能極少極少,但也還是存在用Views不好實現的場景,例如我遇到的:
我們一直很重視網站地圖對搜索引擎的提交,以前的MediaWiki自帶生成sitemap的程序,Drupal也有專門的第三方擴展XML Sitemap程序。
Drupal中兩種可以進行頁面分類的工具是Taxonomy系統和Views方式,前者是專門的分類系統,用得比較多,而Views更加靈活,另外很早前也發現Views中有個叫着Taxonomy term的View,默認沒有開啟,如果開啟的話,可以替代相同路徑的分類頁。
用Drupal很多年一直都是用的自帶搜索,但存在數據量大時速度很慢、搜索結果不準确等問題,中途嘗試過Apache Solr,但感覺太複雜、麻煩了。也知道Views可以用作内部搜索,但一直沒有實施。
Drupal的Views是個非常強大、靈活的工具,但用得不合适也可能導緻數據庫負載的飙升。最近把Drupal站啟用UTF8MB4支持,轉換程序自動把以前的MyISAM引擎轉為InnoDB了,也因此引起阿裡雲RDS的IOPS升高。