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


Leave a Reply