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

 找回密码
 立即注册
搜索

添加个普通贴子,dx写入数据不下16次,太吓人了。

[复制链接]
itlong 发表于 2012-12-14 10:26:41 | 显示全部楼层 |阅读模式
我一直是discuz的fans,从6.0用到现在,对dz的数据结构和程序有一定的了解。
今日有个需求,要做批量导入数据贴子,于是研究一下程序和数据库结构,觉得dx的数据表多得惊人,无心详细地了解。
一般,可以通过:添加一个普通的贴子后,观察数据库的变化,可以得到DX的数据添加过程,从而模拟。但dx的数据表有271个之多,太搞人了。

好吧,你做初一,我做十五,我不从数据表里去搞了,直接从dx的程序数据库类去搞了,直接添加个代码,把dx的数据写入、修改、删除这个三个行为记录下来。看到代码可知了:
source/class/discuz/discuz_database.php的135行处加入下面代码:
  1. $cmd = trim(strtoupper(substr($sql, 0, strpos($sql, ' '))));
  2.                 if ($cmd === 'UPDATE' || $cmd === 'DELETE' || $cmd === 'INSERT'){
  3.                         file_put_contents(DISCUZ_ROOT.'/sql/'.md5($sql).'.sql', $sql);
  4.                 }
复制代码
不记录select的,呵呵。。。

在通过添加一个普通贴子后,唉:
sql.jpg

大惊,插入个贴子,还不计算tag之类,也不计算select 之类,太惊人了。mysql吃力了吧。。。
回复

使用道具 举报

孝感 发表于 2012-12-16 17:50:02 | 显示全部楼层
GMT+8, 2012-12-16 17:49 , Processed in 0.060840 second(s), 14 queries ,

下面都写了 ,刷新一次 , 14次查询
回复

使用道具 举报

 楼主| itlong 发表于 2012-12-16 23:05:26 | 显示全部楼层
孝感 发表于 2012-12-16 17:50
GMT+8, 2012-12-16 17:49 , Processed in 0.060840 second(s), 14 queries ,

下面都写了 ,刷新一次 , ...

不知你讲什么,我是把“一次”插入贴子的所有update,insert,delete的语句记录,不记录select语句!!!!!
基本是:update,insert语句。
回复

使用道具 举报

mark35 发表于 2012-12-16 23:15:40 | 显示全部楼层
如果是X系列那是正常的~
回复

使用道具 举报

tueig1 发表于 2012-12-17 08:28:39 | 显示全部楼层
这么恐怖啊
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-12 06:50 , Processed in 0.142120 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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