[quote]
[url]http://www.iteye.com/topic/148055?page=2[/url]
JavaEye网站的数据库设计是面向对象为中心的设计,但是拿三大范式来衡量,大部分设计都是吻合的,而我们的数据库缓存命中率在90%左右。缓存服务器的流量是数据库服务器流量的2.5倍之多。事实上我们有很多地方的查询尽量避免join,宁可让他n+1,这样速度反而更快,缓存命中率更高。
例如我们现在把帖子的内容字段拆分出来,单独放在一个post_texts表里面。这样posts表实际上只有35MB,而post_texts表有1GB。每次显示一个post,都会用主键去load post_text,命中缓冲。不需要查数据库,不需要去碰那个1GB的大表。[/quote]
Javascript LRU Cache
[url]http://www.monsur.com/projects/jscache/[/url]
[url]http://www.iteye.com/topic/148055?page=2[/url]
JavaEye网站的数据库设计是面向对象为中心的设计,但是拿三大范式来衡量,大部分设计都是吻合的,而我们的数据库缓存命中率在90%左右。缓存服务器的流量是数据库服务器流量的2.5倍之多。事实上我们有很多地方的查询尽量避免join,宁可让他n+1,这样速度反而更快,缓存命中率更高。
例如我们现在把帖子的内容字段拆分出来,单独放在一个post_texts表里面。这样posts表实际上只有35MB,而post_texts表有1GB。每次显示一个post,都会用主键去load post_text,命中缓冲。不需要查数据库,不需要去碰那个1GB的大表。[/quote]
Javascript LRU Cache
[url]http://www.monsur.com/projects/jscache/[/url]
本文分享了JavaEye网站的数据库设计经验,采用面向对象设计并遵循三大范式,通过将帖子内容字段拆分到单独表中以提高缓存命中率,减少数据库负载。
2万+

被折叠的 条评论
为什么被折叠?



