经验分享:zblog大数据量优化要点以及静态HTML文件缓存刷新的两个思路
zblog优化有以下几点:
1. 垂直分表,将正文分离到单独的副表。
2. tag缓存:将tag关联的文章id缓存到tag的meta字段,或者单独一张表,再hook查询逻辑。
3.关闭内置的几个模块,这些模块在数据量很大时,会严重拖累速度,尤其是发布/更新文章的时候。
更多优化:
1. 开启大数据模式,将不会对文章,分类,标签进行统计,对于统计数据没有实时性需求的话可以开启。然后我们写一个脚本,服务器定时去更新统计信息。
2. html静态文件缓存(应该在伪静态路由下使用)
给大家提供两个刷新的思路:
1. 将文件缓存到web不可访问的目录,由php处理请求,根据文件更新时间判断是否刷新缓存,再用内部重定向X-Accel-Redirect或X-SEND-FILE返回文件。这样的好处是我们对请求的处理可以由php处理,对登录用户,爬虫机器人可以返回不同的内容。
2. 将文件缓存到web可以访问的目录,在html写入一个script变量来存储过期时间,由前端根据过期时间决定是否向后端发送刷新请求。不建议在严重依赖用户登录的站点使用,如社区。
3.搜索优化,引入全文搜索引擎。
zblog程序代码和逻辑还是很简单的。
1. 垂直分表,将正文分离到单独的副表。
2. tag缓存:将tag关联的文章id缓存到tag的meta字段,或者单独一张表,再hook查询逻辑。
3.关闭内置的几个模块,这些模块在数据量很大时,会严重拖累速度,尤其是发布/更新文章的时候。
更多优化:
1. 开启大数据模式,将不会对文章,分类,标签进行统计,对于统计数据没有实时性需求的话可以开启。然后我们写一个脚本,服务器定时去更新统计信息。
2. html静态文件缓存(应该在伪静态路由下使用)
给大家提供两个刷新的思路:
1. 将文件缓存到web不可访问的目录,由php处理请求,根据文件更新时间判断是否刷新缓存,再用内部重定向X-Accel-Redirect或X-SEND-FILE返回文件。这样的好处是我们对请求的处理可以由php处理,对登录用户,爬虫机器人可以返回不同的内容。
2. 将文件缓存到web可以访问的目录,在html写入一个script变量来存储过期时间,由前端根据过期时间决定是否向后端发送刷新请求。不建议在严重依赖用户登录的站点使用,如社区。
3.搜索优化,引入全文搜索引擎。
zblog程序代码和逻辑还是很简单的。