发新话题
打印

Discuz静态改造版发布

本主题由 工友 于 2008-1-17 08:53 加入精华
看了一下,知道为什么了.我可以给你写一个变通的程序,但是需要你自己操作些东西,例如用phpmyadmin在cdb_threadtags里新建个字段等.
在写之前我先问下,整个服务器都是你的吧,因为可能在生成和平时维护过程中比较耗费cpu

TOP

服务器比较破,整个服务器都是我的,先谢谢了

TOP

引用:
原帖由 cofco 于 2008-2-16 17:56 发表
服务器比较破,整个服务器都是我的,先谢谢了
那我着手写了,争取在一周内完成,技术上还是可行的

TOP

其他的话没法多说了,只能先说谢谢了

TOP

测试版写完了,你先做试用

首先在phpmyadmin里运行下面代码建一个表
复制内容到剪贴板
代码:
CREATE TABLE `cdb_tag_index` (
  `tagname` varchar(20) NOT NULL default '',
  `page` bigint(12) NOT NULL default '0',
  `data` longtext NOT NULL,
  KEY `tagname` (`tagname`,`page`)
) TYPE=MyISAM;
然后你务必停掉你的web,因为下面操作极其耗费cpu,你也可以把cdb_tags表靠到你本机pc或者其他服务器上去建做这个改动.考虑到你表内数据的量,还很有可能造成php超时,如果超时了没关系,观察cpu的情况,如果接近100%空闲了,去phpmyadmin里的进程连接看下,是否其他数据库读写了.然后分别观察if_do字段和if_do索引是否已经建立了,如果建立了就是成功了.
下面这两行语句务必在phpmyadmin分别执行,不要一次执行
复制内容到剪贴板
代码:
ALTER TABLE `cdb_tags` ADD `if_do` TINYINT( 1 ) DEFAULT '0' NOT NULL ;
ALTER TABLE `cdb_tags` ADD INDEX ( `if_do` ) ;
上面的操作都完成后,请去http://adodb.sourceforge.net/网站下一个adodb的包,解压缩到你的服务器上,例如你的论坛路径是/WKBK/,那么就放到/WKBK/adoab/里即可.然后把make_index.php拷贝到/WKBK/目录下,运行之,运行的时候最好也关闭web,但是不是必须的,看你服务器的负载情况.如果开着web运行,运行的时候最好先关闭tag.如果运行程序超时,请把php.ini里的超时时间调整下.再运行前先删除cdb_tag_index表里面当时生成失败的那个tagname数据.
运行前根据实际情况,修改程序里面$sql_host,$sql_user,$sql_pass,$sql_database四个变量.
make_index.php (1.37 KB)

上面的程序显示"creat index over",就说明生成完成了.剩下的就是把tag.php覆盖原文件即可
tag.php (2.9 KB)

有什么问题及时反馈给我,一切正常后我再把每次更新的步骤写给你.这个程序使用后速度会大幅增加,但是新的词不会时时显示,考虑到你的词汇量,你一个月更新一次就可以了.

TOP

看到了,正在做,随时跟您联系。

TOP

做到make_index.php前时,一切正常。
执行make_index.php 时,make_index.php页面一直在刷新,但是TAG_INDEX表和TAG表却没发现什么变化。

TOP

是放在本机运行的,运行的时候先关闭了tag。
修改了make_index.php程序里面$sql_host,$sql_user,$sql_pass,$sql_database四个变量。
执行make_index.php 时,make_index.php页面一直在刷新。

TOP

cofco看到本帖后请反馈一下你使用的效果

TOP

不好意思,我没开QQ。
我的数据太多,开始是在本机上运行MAKE_INDEX,由于时间太长,我睡觉需要关机,我干脆就放到服务器上去运行了。
运行了10多小时的时候,发觉刷新的那个CONTENT设置为1秒太慢了,我观察了一下,我这个论坛上大约有15万个TAG,每个TAG的所属帖子多的达到30多万,少的只有一个。====不计算运行程序的时间,仅仅是设置为1秒的刷新时间,就需要15万秒,15万秒相当于41个小时,哈,数据太多了:)

我干脆把刷新时间改为0.1秒,结果,加上我原来程序耗费的CPU占有率,总的CPU占用率持续保持在80%以上,大多时候保持在接近100%。运行了大约也是10多个小时,发现IIS好像崩溃了,重启IIS,启动不了,启动RPC也不行了,估计是长时间这么高的占有率,我那破服务器的操作系统出问题了。

没办法,只好重新启动服务器,又重新运行MAKE_INDEX,目前还在持续运行之中。

由于我那个WKBK下的DZ程序TAG太多,一时运行不完,我晚上把您这个程序,用在了另外一个大数据的地方,不过这个DZ程序,数据量虽然大,但是TAG却只有几十个,按照您的操作方法,只用了几分钟就搞定了。
观测了一下,这个TAG量很少的程序,速度快了很多。目录是这个:/WKZW

另外,虽然/WKBK目录下的那个DZ程序MAKE_INDEX还没完工,但我是在服务器上运行的,为保持程序还能正常访问,我没有关闭WEB、也没关闭TAG功能。目前的索引工作一切正常,程序也在正常运行==已经索引完毕的TAG可以正常访问,没有索引完毕的TAG,访问时显示为no more tag。例如http://www.sinology.cn/WKBK/tag- ... AD%97%E5%85%B8.html

您可以访问一下:http://www.sinology.cn/WKBK/     http://www.sinology.cn/WKZW 这两个,WKZW我刚才看还一切正常。 /WKBK/也应该正常。

速度快多了,比打开论坛分类页面要快。例如:
打开http://www.sinology.cn/WKBK/tag- ... AF%8D%E5%85%B8.html     
Processed in 0.145189 second(s), 5 queries, Gzip enabled.

要比打开
http://www.sinology.cn/WKBK/forum-15-1.html
快不少,
Processed in 0.418010 second(s), 4 queries, Gzip enabled.

非常感谢!!!!!!!!!   

TOP

发新话题