联系官方销售客服

1835022288

028-61286886

分享经验 版主:论坛审计组
分享个module标签走指定索引的修改方式
类型:迅睿CMS 更新时间:2024-01-03 03:58:21 数据库表

分享个module标签走指定索引的修改方式


近日,发现有做联合索引,但是调用数据时候,相同调用方式,只是关键词不一样,有的不走这个联合索引。

经查可能原因:

1.那个关键词数据量较少

2.order by 和 limit 结合使用时,如果where字段,order by字段都是索引,那么有limit索引可能会使用order by字段所在的索引,没有limit则会使用where条件的索引;

于是就想强制指定索引。通过sql标签调用又感觉麻烦。

修改方式:

修改文件:dayrui\App\Module\Action\Module.php
找到$sql_from = '`'.$table.'`';//下面添加
  if (isset($param['index'])) {
   $sql_from.=' USE index('.$param['index'].')';
  }
模板调用方式:
{module catid=1 index=catupdate  order=updatetime page=1} 
index=索引名,
如果数据库表中没有这个索引名会出错,请确认并自定添加

没做详细测试,比如module 标签中,join 关联查询时候是不是有用。

只测试本表内的调用,