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升高。