婷姐 发表于 2024-11-11 22:52:04

各位JJ大的小伙子们~问个帝国cms分表的问题

我原来的表是phome_article,文章太多了,SQL查询贼慢~才发现有个分表的功能原来的sql是 select * from phome_article
我现在如果分表的话,假设分成phome_article_1和phome_article_2,这个时候我原来模板中的调用sql是要修改吗?
比如要调用最新的 是要改成 select * from phome_article_2还是帝国内部有机制,直接使用select * from phome_article就可以调用?

TyCoding 发表于 2024-11-11 22:52:14

以下的AI回复仅供参考,希望对你有用:

独家记忆 发表于 2024-11-11 22:52:54

一个栏目绑定一个模型 这就是帝国的主表分表了
栏目设置绑定模型


当然每个栏目查询就对应相应的模型表就可以了。如果要查询所有主表的数据,下面供参考

浅生 发表于 2024-11-11 22:53:11

老哥~我加了你Q,你看下

IT618发布 发表于 2024-11-11 22:53:34

AI我也问过,不晓得靠谱不

婷姐 发表于 2024-11-11 22:53:49

ai都不行

独家记忆 发表于 2024-11-11 22:54:34

<?php
$fenbiaoarticle = '5';//分了多少个文章主表数量,根据你实际的主表分表数量
$unionQuery = '';
for ($i = 0; $i < $fenbiaoarticle-1; $i++) {
if ($i == 0) {
$unionQuery = "select * from {$dbtbpre}ecms_article" . $fenbiaoarticle[$i] . " ";
} else {
$unionQuery .= " union all select * from {$dbtbpre}ecms_article" . $fenbiaoarticle[$i] . " ";
}
}
$unionQuery .= ' order by id desc limit 10';
$sql=$empire->query($unionQuery);
while($r=$empire->fetch($sql)){
?>
<tr>
<td width="67%" height="25">·<a href="<?=$r['titleurl']?>" target="_blank">
<?=esub(stripslashes($r['title']),32)?>
</a></td>
<td width="33%"><div align="center">[<?=date('Y-m-d',$r['newstime'])?>]</div></td>
</tr>
<?php
}

能不能看懂呢?这就是多个多个主表的

Crystαl 发表于 2024-11-11 22:55:20

最好不要读取所有的主表,这会造成mysql临时表写入非常高高
页: [1]
查看完整版本: 各位JJ大的小伙子们~问个帝国cms分表的问题

创宇盾启航版免费网站防御网站加速服务