联系官方销售客服
1835022288
028-61286886
分享个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 关联查询时候是不是有用。
只测试本表内的调用,