首页 > 其他分享 >destoon关于archiver归档的性能优化

destoon关于archiver归档的性能优化

时间:2023-09-28 09:01:47浏览次数:40  
标签:destoon addtime db mid month archiver 归档 table DT

今天在处理一个项目时候发现archiver单个模块归档超过百万数据,打开速度就特慢,所以打开archiver下index.php文件进行分析,发现有句sql作怪

1 $result $db->query("SELECT title,linkurl,addtime FROM {$table} WHERE $condition ORDER BY addtime DESC LIMIT $offset,$pagesize");

  因为这sql就是查询,没有用到索引。我们思路要先查询itemid然后再用itemid进行查询,这样速度就快了。

代码如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 <?php define('DT_REWRITE', true); require '../common.inc.php'; $EXT['archiver_enable'or dheader(DT_PATH); //$DT_BOT or dheader(DT_PATH); $N $M $T array(); $mid or $mid = 5; $vmid $list = 0; foreach($MODULE as $k=>$v) {     if(!$v['islink'] && $v['ismenu'] && $v['moduleid'] > 4) {         if($k == $mid$vmid = 1;         $v['url'] = $DT['rewrite'] ? rewrite('index.php?mid='.$k) : '?mid-'.$k.'.html';         $N[] = $v;     } } $vmid or $mid $N[0]['moduleid']; $table = get_table($mid); $t $db->get_one("SELECT MIN(addtime) AS mintime,MAX(addtime) AS maxtime FROM {$table}"'CACHE'); $fromtime $t['mintime']; $fromyear = timetodate($fromtime'Y'); if($fromyear < 1990) $fromyear = 1990; $frommonth = timetodate($fromtime'n'); $totime $t['maxtime'] > $DT_TIME $DT_TIME $t['maxtime']; $toyear = timetodate($totime'Y'); $tomonth = timetodate($totime'n'); for($i $toyear$i >= $fromyear$i--) {     for($j = ($i == $toyear $tomonth : 12); $j >= ($i == $fromyear $frommonth : 1); $j--) {         $r array();         $r['title'] = $MODULE[$mid]['name'].$i.'年'.($j < 10 ? '0' '').$j.'月归档';         $r['month'] = $i.($j < 10 ? '0' '').$j;         $r['url'] = $DT['rewrite'] ? rewrite('index.php?mid='.$mid.'&month='.$r['month']) : '?mid-'.$mid.'-month-'.$r['month'].'.html';         $M[$r['month']] = $r;     } } $head_title $MODULE[$mid]['name'].'归档'; if(isset($month) && isset($M[$month])) {     $list = 1;     $y substr($month, 0, 4);     $m substr($month, 4, 2);     $ym $y.'-'.$m;     $t = timetodate(datetotime($ym.'-01'), 't');     $ftime = datetotime($ym.'-01 00:00:00');     $ttime = datetotime($ym.'-'.$t.' 23:59:59');     $condition "addtime>$ftime AND addtime<$ttime";     $num $db->count($table$condition$CFG['db_expires']);     $demo_url $DT['rewrite'] ? rewrite($MODULE[1]['linkurl'].'archiver/index.php?mid='.$mid.'&month='.$month.'&page={destoon_page}') : '?mid-'.$mid.'-month-'.$month.'-page-{destoon_page}.html';     $pages = pages($num$page$pagesize$demo_url);     $tmp explode('<input type="text"'$pages);     $pages $tmp[0];     if($num) {         //优化查询速度         //$result = $db->query("SELECT title,linkurl,addtime FROM {$table} WHERE $condition ORDER BY addtime DESC LIMIT $offset,$pagesize");          $reitemid $db->query("SELECT itemid FROM {$table} WHERE $condition ORDER BY addtime DESC LIMIT $offset,$pagesize");          //echo "SELECT itemid FROM {$table} WHERE $condition ORDER BY addtime DESC LIMIT $offset,$pagesize";          while($rid $db->fetch_array($reitemid)) {           $getid.=$rid['itemid'].",";          }           $getid=mb_substr($getid,0,-1);           //判断是否在里面         $result=$db->query("SELECT title,linkurl,addtime FROM {$table} WHERE itemid in ($getid)");         while($r $db->fetch_array($result)) {             $r['adddate'] = timetodate($r['addtime'], 5);             if(strpos($r['linkurl'], '://') === false) $r['linkurl'] = $MODULE[$mid]['linkurl'].$r['linkurl'];             $T[] = $r;         }     }     $head_title $MODULE[$mid]['name'].$y.'年'.$m.'月归档'.($page > 1 ? '第'.$page.'页' ''); } include template('archiver''extend'); ?>

  演示地址:战争指挥官小米手游v8.5.1 安卓版-9335游戏网

标签:destoon,addtime,db,mid,month,archiver,归档,table,DT
From: https://www.cnblogs.com/zx8868/p/17734812.html

相关文章

  • 「归档」AT 板刷
    我不好说。晚起的星星或许也是星星,哪怕它是被别人拿鞭子抽升起的。因为很菜,所以可能也会记录很多naive的题目。「ARC104C」想歪了,构造方案非常繁琐。考虑到题目只要求是否可行,所以思考可达性dp。如果给\(-1\)的空位填数就回到了构造方案的思路上,不妨转而考虑每个楼层的上......
  • 压缩和归档、文件搜索、文本过滤__实验
    1.使用root用户连接到具有图形界面的CentOS7系统2.将/etc目录归档到/root下,并命名为etc.tar.gz[root@localhost~]#tar-zcvf/root/etc.tar.gz/etc3.将etc.tar.gz文件释放到/tmp文件夹中。[root@localhost~]#tar-zxfetc.tar.gz-C/tmp/4.将/etc、/boot目录归档到......
  • 压缩和归档、文件搜索、文本过滤
    列表对比Linux系统下常用压缩与解压缩命令的区别压缩命令特点解压缩命令zip可压缩目录,不删除原文件unzipgzip删除原文件,可指定压缩比gunzipbzip2删除源文件bunzip2xz压缩比更大unxztar命令的语法与常用选项有哪些?各选项的作用是什么?语法:tar选项打包后的名字打包的文件或目录......
  • destoon上做纯js实现html指定页面导出word
    因为最近做了范文网站需要,所以要下载为word文档,如果php进行处理,很吃后台服务器,所以想用前端进行实现。查询github发现,确实有这方面的插件。js导出word文档所需要的两个插件:FileSaver.jsjquery.wordexport.js首先引入:<!--生成word!--><scriptsrc="https://cdn.bootcss......
  • destoon关于archiver归档的性能优化
    今天在处理一个项目时候发现archiver单个模块归档超过百万数据,打开速度就特慢,所以打开archiver下index.php文件进行分析,发现有句sql作怪,查询需要三四分钟,所以要修改这个。$result=$db->query("SELECTtitle,linkurl,addtimeFROM{$table}WHERE$conditionORDERBYaddtimeDES......
  • destoon添加自定义字段报错INSERT INTO [pre]fields
     今天做destoon开发时候在后台添加自定义字段时候出现:destoon7.0-8.0添加自定义字段报错MySQLQuery:INSERTINTO[pre]fields(tb,name,title,note,type,length,html,default_value,option_value,width,height,input_limit,addition,search,display,front)VALUES('article_21',......
  • destoon关于archiver归档的性能优化
     今天在处理一个项目时候发现archiver单个模块归档超过百万数据,打开速度就特慢,所以打开archiver下index.php文件进行分析,发现有句sql作怪$result=$db->query("SELECTtitle,linkurl,addtimeFROM{$table}WHERE$conditionORDERBYaddtimeDESCLIMIT$offset,$pagesize"......
  • destoon自定义一个archiver内容文档
     在archiver目录建立以下代码:<?phpdefine('DT_REWRITE',true);require'../common.inc.php';$EXT['archiver_enable']ordheader(DT_PATH);//$DT_BOTordheader(DT_PATH);$N=$M=$T=array();$midor$mid=5;$vmid=$list=0;......
  • 软件开发中的资料整理与归档,软件产品开发文档合集
    [引言]本文旨在提供一份标准的软件开发文档模板,以便记录软件开发的全过程。该模板适用于各种类型的软件开发项目,包括Web应用程序、移动应用程序和桌面应用程序等。本文档将介绍软件开发的引言、概述、需求分析、设计、测试、维护以及总结等方面,帮助您撰写一份完整、清晰且易于理......
  • destoon根据标题删除重复数据
    因为采集数据比较庞大,难免出现重复数据,所以写了一个根据标题进行删除重复数据的mysql命令,需要的朋友可以使用。DELETEfromdestoon_article_36where`title`in(SELECT*from(SELECT`title`FROMdestoon_article_36GROUPBY`title`HAVINGCOUNT(1)>1)tmp2)......