Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

1111 兄进来, 用文本存储 online 列表的问题.

[复制链接]
LostButterfly 发表于 2004-9-28 13:10:42 | 显示全部楼层 |阅读模式
你说 mysql 列举在线人数也是通过 while + fetch_array 循环处理, 于是结论是和文本技术中的 foreach 差不多. 不知道是不是这个意思.

如果是的话, SQL 是在 select 的时候可以筛选结果集的, 例如我要选择 forumid = 2, 最近 15 分钟内还有活动的人, 那么通过 WHERE 语句查询, 可以直接命中需要的结果. 所以即便有 6000 人在线, 但是显示分论坛在线列表的时候, 我能够只对选择出来的上百个结果进行循环.

但是文本呢 ? 不能用 WHERE 来限定结果集吧 ? (可能通过技术改造可以, 但是目前不行) 所以只得老老实实进行 6000 个 foreach 循环, 全部读一遍数据, 然后用 if 分析每一行存储的 forumid 是不是 2, lastvisit 是不是 < 15 min, 最后塞到结果集中, 而这一切都是 php 在作, 和 mysql 在 select 时候的 binary 级别执行, 效率哪个高, 不用我说了吧 ?

除非当有 200 个分论坛时候你开 400 个文件来分别记录每个论坛的情况了. (一个记录 member, 另一个是 guest), 否则不可能逃避 6000 个 foreach 的.

[ Last edited by LostButterfly on 2004-9-28 at 01:13 PM ]
回复

使用道具 举报

 楼主| LostButterfly 发表于 2004-9-28 13:19:20 | 显示全部楼层
原本那个技术讨论贴后面走题了, 这是没有办法的事, 人人都有火气, "礼尚往来" 而已.

我并不是贬低 pw 的文本存储, 相反还很佩服这个思想, 只不过没有用对地方而已.

[ Last edited by LostButterfly on 2004-9-28 at 05:12 PM ]
回复

使用道具 举报

kikin 发表于 2004-9-28 16:02:10 | 显示全部楼层
又看到高手交流,学点东东~各位继续
回复

使用道具 举报

 楼主| LostButterfly 发表于 2004-9-28 17:07:22 | 显示全部楼层
效率这些问题都是具体细节问题, 随便学两天都可以来侃, 无所谓高手.

更希望有同道能一起讨论一下论坛系统中的 design patterns, 包括 mvc, 各类 controller. 这些东西虽然用户完全看不到, 但我觉得比起执行 0.xxx 秒来说更有意义多了.

[ Last edited by LostButterfly on 2004-9-28 at 05:13 PM ]
回复

使用道具 举报

smallwl 发表于 2004-9-29 19:48:04 | 显示全部楼层
呵呵,有意思嘛。
我認為PW和DISCUZ是兩個不同對象的産品。不能這樣比較的。
回复

使用道具 举报

paulgao 发表于 2004-10-1 00:53:16 | 显示全部楼层
Originally posted by LostButterfly at 2004-9-28 01:10 PM:
你说 mysql 列举在线人数也是通过 while + fetch_array 循环处理, 于是结论是和文本技术中的 foreach 差不多. 不知道是不是这个意思.

如果是的话, SQL 是在 select 的时候可以筛选结果集的, 例如我要选择 foru ...

这个问题其实不用讨论了,我和大C的观点一致的,也许是他们没拿这种方式跟MYSQL 的HEAP表来进行比较(我看到的 mysql useronline 表都是HEAP的),或者是做比较的方法有点问题导致了这个选择,或者是像你说的,直接沿用了文本论坛的方式吧。
反正是我想破脑袋也想不明白,磁盘操作怎么跟内存操作比?这才是整整差了一个数量级呢。起码是这样的,我相信没有人会置疑的。除非是内存操作非常繁忙才会有问题,比如我上次走牛角尖,搞了个1G的querycache,结果天天一堆slowquery:(
回复

使用道具 举报

paulgao 发表于 2004-10-1 00:56:18 | 显示全部楼层
Originally posted by smallwl at 2004-9-29 07:48 PM:
呵呵,有意思嘛。
我認為PW和DISCUZ是兩個不同對象的産品。不能這樣比較的。

不知道你说的不同对象是指怎么个不同对象。无论是从技术方面看,还是从用户角度看,我没觉得有什么区别。
回复

使用道具 举报

hklcf 发表于 2004-10-1 10:02:33 | 显示全部楼层
dz是用文本??
回复

使用道具 举报

smallwl 发表于 2004-10-1 16:52:04 | 显示全部楼层
Originally posted by paulgao at 2004-10-1 12:56 AM:

不知道你说的不同对象是指怎么个不同对象。无论是从技术方面看,还是从用户角度看,我没觉得有什么区别。


對象=終端=用戶

DISCUZ和PW虽然都是走商业化道路,但很明显是面對不同的用戶而設計的。對象不同,何為不同?

很簡單的一個事實表明,PW是一个大众化的商品,就象超市里的面包,而DISCUZ就象橱柜裏的CONTI,即使消費得起也用不起。

不會獨立制作插件或者不想將時間花費在插件上的會選擇PW論壇;

而選擇DISCUZ論壇是因為其執行效率的上優越。

引用部分從DISCUZ轉去PW的抱怨:什麽嘛,貼個FLASH都要HACK。


在某一天,當我覺得制作HACK很累时,也許我也會从DISCUZ转去PW。雖然其執行效率和程式代碼實在不敢恭维,但它为我节约了大量的时间和精力。

[ Last edited by smallwl on 2004-10-1 at 04:57 PM ]
回复

使用道具 举报

laoyang 发表于 2004-10-1 22:05:02 | 显示全部楼层
同意楼上的
对普通用户来说,代码有什么关系?效率能差到哪儿去?抓住用户才是硬道理!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-12-12 02:23 , Processed in 0.083983 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表