This topic created in 3998 days ago, the information mentioned may be changed or developed.
我的网站有个文章列表页,没有内容页。
评论是显示在每条记录下面的。
每次打开这个列表页,加载的顺序是:
①根据用户id,查询该用户id下的文章列表。
②根据该列表中每一篇文章,依次去查询评论。
③组合到页面,列表页才显示出来。
数据少的时候,就没什么感觉。但文章多、评论多的话,效率就不行了。缓存、静态那些倒是有,现在就纠结数据库这块。
传统的网站,评论都是在内容页显示的,就不存在这个问题。我的网站评论是在列表页显示,求助该如何设计表?
10 replies • 2015-06-29 11:31:22 +08:00
 |
|
2
qiayue Jun 26, 2015
假设有十篇文章,你先循环一遍把十个文章 ID 拿到手 然后去评论表找评论 where article_id in (1,2,3,4...) 括号里是十个文章 ID 这样查询评论表,就只需要查询一遍,不需十遍
|
 |
|
3
kaneg Jun 26, 2015
你可以在页面先只加载列表,然后每个列表的评论在通过ajax异步加载,甚至只显示评论数量,让用户点击查看评论再去加载。这样就可以省去很多无用的消耗,因为不是所有的评论都会有人去看的
|
 |
|
4
em70 Jun 26, 2015
给文章表加一个字段,把当前评论生成HTML代码放这个字段里,每次显示文章再显示这个字段的内容作为评论就行了,每次用户为这个文章发表评论都更新这个文章记录下的这个字段的内容即可. 因为发评论的人远远少于看评论的人,大量的资源可以节约下来.
|
 |
|
5
ClearGC Jun 26, 2015 via Android
disqus 和 多说 欢迎你
|
 |
|
6
withrock Jun 27, 2015
感觉用非结构化数据库更容易解决你这个问题。 每个item 都是文章+评论列表,这样就不用考虑你所说的这个问题了。
|
 |
|
7
withrock Jun 27, 2015
不好意思,才看到这个在MySQL分支下,请直接忽略我的上一个回答。
|
 |
|
8
akira Jun 28, 2015
一分钟刷新一次列表页,性能在怎么低也足够了吧
|
 |
|
10
realpg Jun 29, 2015
一个文章entry只显示20条评论,多于20条的做一个ajax的展开功能,这个单文章评论展开就是基于article_id调用单表索引检索了,性能很好 20条评论本身,在article表里面做一个冗余,记录20条评论内容
|