Squid 的 502 错误以及 Lyceum 表结构分析
June 24th, 2006
为了调试这个 Lyceum ,花费了三个夜晚,解决了怪异的文章引起的 502 错误。
返回字节数为 0 。
实际上是后台数据库查找不到数据, SQL 语句出错之类的引起返回给前端 die() 。
由于 Lycum 中一部分新的文章赋予了新的 User ID ,导致数据查询出错。
目前 Lyceum 的整个体系架构基本分析清楚。
Lyceum 尽管有建立 临时表, 频繁 distinct 这样的操作,但是总体来看在性能上还是比较优越的。
usermeta 表定义了用户对相关 blog 的操作权限,同时也定义了用户的一些基本属性 (blog is NULL)
capabilities | a:1:{s:10:”subscriber”;b:1;} 定义对 blog 具有订阅权限
options 管理 Blog 的 options , 包括 option_name=’home’ 定义该 blog 的首页 URL, option_name=’blogname’ 定义 Blog 名字。
template 和 stylesheet 定义模板名。
CREATE TEMPORARY TABLE bloginfo
SELECT blogs.id, blogs.slug, option_value as blogname, status
FROM blogs
INNER JOIN options ON (blogs.id = options.blog)
INNER JOIN posts
INNER JOIN post2cat ON (post_id = posts.ID)
INNER JOIN categories ON (category_id = cat_ID AND categories.blog = options.blog)
WHERE
status = ‘active’ AND
option_name = ‘blogname’
ORDER BY post_date_gmt DESC