解决discuz论坛楼层显示错误并且楼主不显示方法
发布:smiling 来源: PHP粉丝网 添加日期:2014-12-05 10:48:19 浏览: 评论:0
任何数据库应用都存在分页性能问题,mysql的性能问题似乎更大些,Discuz7.2(以下简称dz7.2)和Discuz X2(简称X2)的抢楼机制基本相同,抢楼与普通帖子(盖楼)是不同的处理机制,到了Discuz X2.5(简称X2.5)就把抢楼与盖楼机制统一.
引用来源:X2.5的新程序架构
由以上信息可以看出Discuz!X2.0及更早版本与Discuz!X2.5对抢楼及盖楼的机制并不相同、数据结构也相应的存在差距,为了解决这一问题,我们同时首先需要了解下discuz数据表以下几个常见字段.
- tid:主题id
- pid:帖子id
- position:显示位置
- first:是否是首贴
Discuz!X2.0及更早版本主题抢楼盖楼数据表:
forum_post 帖子表:
forum_postposition帖子排楼顺序表,用来存储论坛帖子的排序,该表采用 (tid, position) 两个字段联合做自增主键,在高并发情况下,效率自然不高。(题外话,补充一点:该表不宜修改为InnoDB,建议新增了一列自增ID做主键,该主键和业务完全没有任何关系,仅用做自增主键。)
forum_postposition表的存储内容格式:
在抢楼帖中假设forum_post表中first字段为1且该帖pid与forum_postposition表中pid相等且forum_postposition表中position字段为1对应则为1楼。
Discuz!X2.5及更高版本主题抢楼盖楼数据表:
forum_postpositin帖子排楼顺序表:取消了forum_postpositin表,在 post主表中增加 position 字段保存每个帖子的楼号.//开源软件:phpfensi.com
forum_post 帖子表中多了一个position字段.
至此,你应该知道如何解决或处理该问题了,该问题在Discuz!X2.5及更高版本中很少遇见或几乎不会遇见,原因上述内容已经提到.
扩展阅读:
先不分析X2.5固定楼号的利弊,就谈谈从dz7.2到X2.5对楼层处理机制以及变化的优缺点.
dz7.2用 postposition表来实现抢楼楼号排序,顺便也实现了对高楼层分页性能优化;X2 postpositon表只用来抢楼,对于高楼层主题分页优化没看到相关处理;X2.5对post主表添加楼号字段来让所有帖子的楼号固定,从而解决分页性能问题,也一并解决了抢楼问题。
从抢楼为主,附加高楼层分页到所有楼层分页为主,附带实现了抢楼,这个变化说明随着discuz功能增加对于分页性能的需求也变大,另外一个显示原因是那些长期使用discuz系统的大站数据也越来越大,大于1000万帖子的不是少数,他们对分页性能提高的需求更迫切.
Tags: discuz楼层显示 discuz楼主不显示
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)