让人彻底石化的视频
一开始以为是个京剧,结果他一开口,彻底石化...
一开始以为是个京剧,结果他一开口,彻底石化...
今天将一个表数据拷贝到另一个表中,特地分析了下这两种执行方式的效率。
第一种:PHP脚本执行。
PHP脚本代码如下:
$limit = 1000; $start = !empty($_GET['start']) ? $_GET['start'] : 0; $query = DB::query("SELECT COUNT(*) FROM temp", 'SILENT'); $count = $query ? DB::result($query, 0) : 0; if($start <= $count) { $query = DB::query("SELECT * FROM temp LIMIT $start, $limit"); while($row = DB::fetch($query)) { $row = daddslashes($row); DB::query("INSERT INTO tests (id, name) values ('$row[conuin]', '$row[openid]')"); } $start += $limit; showmessage('next',"1.php?start=$start"); }
从temp表查询数据,然后插入到tests表中,其中temp表有80W条数据,PHP脚本执行情况:
晚上8点22分开始执行,到晚上10点11分执行完毕,耗时38+11=49分钟。
第二种:Mysql命令行下使用SQL执行。
执行SQL如下:
INSERT INTO tests (id, name) (SELECT conuin as id, openid as name FROM temp);
执行情况:耗时不到2分钟。
可见,Mysql下使用SQL命令导入数据的方式更加快捷。
碰到一个DIY模板更新的问题,顺便分析了下更新的机制,整理记录下来了就。
哪些是DIY模板呢?
DIY模板加载的代码比较特殊,具体格式类似下面
include template('diy:***');
***为其他内容,不限。
如加载论坛首页的代码:
include template('diy:forum/discuz:'.$gid);
模板是如何加载的呢?
这里不对x2默认的模板加载方式进行分析,只针对DIY部分的更新加以说明。
找到source/function/function_core.php文件,找到template函数,在函数里可找到如下代码:
if($tpldir == 'data/diy' && ($tplrefresh ==1 || ($tplrefresh > 1 && !($_G['timestamp'] % $tplrefresh))) && filemtime($diypath.$file.'.htm') < filemtime(DISCUZ_ROOT.TPLDIR.'/'.($primaltpl ? $primaltpl : $oldfile).'.htm')) { if (!updatediytemplate($file)) { unlink($diypath.$file.'.htm'); $tpldir = ''; } }
这段就是判断如果是DIY模板,同时满足更新条件,则更新相应的DIY模板。
更新的操作为updatediytemplate($file)。
还是在function_core.php文件里,找到updatediytemplate函数,代码如下:
function updatediytemplate($targettplname = '') { global $_G; $r = false; $where = empty($targettplname) ? '' : " WHERE targettplname='$targettplname'"; $query = DB::query("SELECT * FROM ".DB::table('common_diy_data')."$where"); require_once libfile('function/portalcp'); while($value = DB::fetch($query)) { $r = save_diy_data($value['primaltplname'], $value['targettplname'], unserialize($value['diycontent'])); } return $r; }
common_diy_data表里存放的就是DIY数据,数据格式类似如下:
这里会从common_diy_data中查出更新的源文件和目前文件。
找到source/function/function_portalcp.php,找到save_diy_data函数,有如下代码:
function save_diy_data($primaltplname, $targettplname, $data, $database = false, $optype = '') { global $_G; if (empty($data) || !is_array($data)) return false; checksecurity($data['spacecss']); $file = ($_G['cache']['style_default']['tpldir'] ? $_G['cache']['style_default']['tpldir'] : './template/default').'/'.$primaltplname.'.htm'; if (!file_exists($file)) { $file = './template/default/'.$primaltplname.'.htm'; } if(!file_exists($file)) return false; ......(中间的部分省略) return $r; }
注意里面的这句代码
$file = ($_G['cache']['style_default']['tpldir'] ? $_G['cache']['style_default']['tpldir'] : './template/default').'/'.$primaltplname.'.htm';
这里会以你当前使用的风格路径下的相应文件$primailtplname.htm为源文件进行更新。
工作一年了,到年底了,准备给自己入个数码产品。
细想了下,就俩样:手机和相机。
手机目前用的就是能打打电话,发个短信,别的什么也不能做;还没相机,不过一直想入。
手机的话看中了Nokia的N9,外观实在太赞了,唯一一点前景不明,软件数量可能跟不上,还处于观望阶段。
周末混迹于数字尾巴社区,突然发现很多大赞的照片,细看发现都是理光GRD拍的,于是就稍微了解了下这个品牌。
好吧,我承认我是个摄影小白,一无所知...
理光(日文:株式会社リコー、英文:Ricoh Company, Ltd.),是日本的事务机器及光学机器制造商,市井清在1936年成立理化学研究所,主要研究理研阳画感光纸,其后于1963年正式易名为理光,并在同年成立香港分公司并进一步迈向大中华市场,名为丽确;1997年全球统一中文译名为“理光”,而当时理光广告位位于湾仔告士打道“尚汇”(近铜锣湾铁路站),而理光劲敌为佳能、索尼、宾得、施乐、柯尼卡美能达、宝丽来、哈苏、三星、Panasonic。——维基百科
看了下论坛上关于理光这款机子的评测:
经典中淬炼出的完美——理光 GRD4 体验记
【你在烦恼些什么】理光GRD III or IV选购之我见
于是基本确定入手IV这台机子,顺便又看了下网上商城这款机子的报价,京东3999有货,卓越3999没货。
对比了下两家的物品,发现卓越里带镜头盖,于是继续纠结是入手相机还是手机。
经过慎重缜密的考虑,决定先入手相机,手机今年就不考虑了。
今天卓越上又看了下物品情况,发现有货了,于是马上下单,顺便又买了本GRD的书《极致的浪漫》,共4039块。
第一次在网上下这么大的单子,也是第一台自己的相机。
接下来就是等待了,订单显示下周五可以送来,我比较怀疑需要这么长时间么...