帝国CMS | 织梦CMS |

帝国cms数据库自动分表插件

在使用帝国CMS系统的时候,如果单表数据量比较大,会导致网站更新、后台管理特别缓慢,而且容易导致超时。

采用帝国cms系统建议单表大小,建议不太过大,不然会影响性能,一般我习惯设置4G左右就分表,基本上设置大小根据服务器内存大小来定比较好。

测试环境

先用熟悉的sql语句来查看下测试表的一些情况

use infomation_schema

SELECT * FROM TABLES WHERE TABLE_SCHEMA = ‘dbname’ AND TABLE_NAME = ‘product’

111544436293982.jpg

自动分表代码

-------------------------------------数据库分表自增插件内容----------------------------

数据库分表自增:采集入库时当达到指定分表限制大小时,自动新增分表并设定默认值。

使用方法:将userfun.php里的函数复制到e/class/userfun.php里,或者直接覆盖;在e/class/cjfun.php里

查找:$savetxtf=$emod_r[$mid]['savetxtf'];然后在其后面添加:$stb=AutoStb($cr[tid],自动分表大小);

不要忘记分号哦。自动分表大小:单位:M(兆)。以后采集入库分表达到指定大小的时候便会自动增加分表并设定为默认分表,

可以直接将分表大小设置成1M,然后采集试试。如出现调用错误请在e/admin/ecmscj.php里添加:require("../class/userfun.php");

--------------------------------------------------------------------------------------- 

<?php

//---------------------------用户自定义标签函数文件--------------------------

function AutoStb($tid,$size)

{global $empire,$dbtbpre;

$tb=$empire->fetch1("select tbname,datatbs,deftb from {$dbtbpre}enewstable where mid='$tid'");

$tbname=$tb[tbname];

$stbarr=explode(",",$tb[datatbs]);

$newstb=0;

for($i=0;$i<count($stbarr);$i++)

{if($stbarr[$i])

{$ftb=$empire->fetch1("SHOW TABLE STATUS LIKE '{$dbtbpre}ecms_".$tbname."_data_".$stbarr[$i]."';");

$ftbsize=($ftb[Data_length]+$ftb[Index_length])/pow(1024,2);

if($ftbsize<$size)

{if($tb[deftb]!=$stbarr[$i])

{$empire->query("update {$dbtbpre}enewstable set deftb=".$stbarr[$i]." where tid='$tid'");}

$newstb=$stbarr[$i];

break;

}

$maxstb=$stbarr[$i];

}

}

if(!$newstb)

{$maxstb++;

$odtb=$dbtbpre."ecms_".$tbname."_data_1";

$dtb=$dbtbpre."ecms_".$tbname."_data_".$maxstb;

CopyEcmsTb($odtb,$dtb);

$empire->query("update {$dbtbpre}enewstable set datatbs='".$tb[datatbs].$maxstb.",',deftb=$maxstb where tid='$tid'");

$newstb=$maxstb;

}

GetConfig(1);

return $newstb;

}

?>

  • 帝国cms数据库自动分表插件 相关内容:
  • 帝国cms文章模型把“存文本”转换为“存数据库
  • 帝国的文章模型,默认情况下,正文字段属性是内容存文本的!也就是不保存到数据库,但是这样对应数据库容量大的,就没必要了,想转换成存到数据库的,帝国ECMS就没带这功能。今天我就来介绍如何实现!首先打开phome_enewsf表,找到文章模型下正文字段的设置信息,找到 savetxt tinyint(1)...

  • 帝国cms手机、pc端后台共用,手机端后台免登陆教
  • 近日在使用帝国cms建立新网站的时候,当建立手机网站遇到管理手机模板、生成手机端页面非常麻烦,需要再次登陆手机端的后台,并且还会导致电脑端已登录的后台账号掉线,不能顺畅的切换。只能登陆一边。后来研究并解决此问题,做个记录备份。也希望能帮助到遇到同样问题的朋友!帝国...

  • 帝国cms内容关键词替换,设置内链系统优先级
  • 帝国cms目前很多朋友在用,但是从seo角度考虑需要更好的站内链接,也是我们所说的内链,而帝国cms的内容关键词替换没有优先级的问题,如我们存在的关键词为帝国cms、帝国、cms这三个,如果文中出现了帝国cms这个词,那么系统会为帝国和cms分别加上链接,则不是我们需要的。我们需要他...

  • 解决帝国cms内链系统会默认替换内容关键词已存
  • 在帝国cms的内容关键词替换中会遇到替换了原文中已存在的链接,如已经手动添加的关键词链接:帝国cms ,如果我们在新闻模型内容关键词连接中分别填写了 帝国、cms那么文章中已存在的帝国cms链接会被拆分,并且链接会错乱...

  • 查看更多>>

    帝国CMS