• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > Laravel学习记录之强制指定索引进行查询

Laravel学习记录之强制指定索引进行查询

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了Laravel强制指定索引,Laravel学习记录,Laravel查询等相关知识,希望对您有所帮助

本文带大家学习Laravel之强制指定索引进行查询,希望对大家有所帮助。


为什么需要强制索引?

数据库没有使用我们设想的索引进行sql查询,导致查询特别慢。


mysql强制索引查询语句

select * from user where age = 26 force index(age); // 强制索引select * from user where age = 26 use index(age); // 优先按照这种索引查找
/** * 检测某个表中是否存在某个索引 * @param $table * @param $index * @return bool * @author zhaohao * @date 2019-08-26 17:42 */if(!function_exists('hasIndex')) {    function hasIndex($table, $name)    {        $conn = IlluminateSupportFacadesSchema::getConnection();        $dbSchemaManager = $conn->getDoctrineSchemaManager();        $doctrineTable = $dbSchemaManager->listTableDetails($table);        return $doctrineTable->hasIndex($name);    }}


在laravel的代码里面需要这样写:

在这里用when方法来判断此索引是否存在,日过不存在的话就不用这个索引,不然会报错,避免有人误删索引后,导致系统报错。

此处强制索引的语句是:

->from(DB::raw('`erp_agents` FORCE INDEX (`test`)'))

例如:

$agents = Agent::where($whereType)    ->when(hasIndex('Agent', 'test'),function ($q){        $q->from(DB::raw('`erp_agents` FORCE INDEX (`test`)'));    })    ->when(request('position',false),function ($q){        $q->whereIn('position_id',request('position'));    })    ->whereIn('agents.status', $validStatus)    ->where('worked_at', '<=', $end)    ->where('is_suppose', 0)    ->addDomination('m.statistics-human-view')    ->leftJoin('positions', 'positions.id', '=', 'agents.position_id')    ->get(['worked_days', 'worked_at']);


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Laravel学习记录之强制指定索引进行查询

相关文章

  • 2022-04-29Javascript怎样验证手机号码
  • 2022-04-29Thinkphp volist多重循环原样输出数组key值
  • 2022-04-29详细介绍mysql忘记密码的解决方案及修改密码的三种方式
  • 2022-04-29Photoshop设计炫丽的抽象光线背景教程
  • 2022-04-29让dedecms友情链接也支持limit
  • 2022-04-29Mysql如何允许外网访问设置
  • 2022-04-29解决LNMP环境安装WordPress不显示主题,无法编辑的教程
  • 2022-04-29关于WordPress删除xmlrpc.php防DDOS攻击
  • 2022-04-29JavaScript中字符串(string)如何转json
  • 2022-04-29ThinkPHP5跟laravel的区别有哪些

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 帝国CMS灵动标签显示标题属性、截取标题字数
    • PS将肖像照片处理为个性海报
    • 织梦DEDECMS首页调用单页文档内容并带过滤HTML的方
    • Centos MySQL 忘记密码怎么办
    • Thinkphp5中验证器的使用方法
    • Discuz!教程之删除注释云平台JS,加快Discuz访问
    • 详解通过WordPress内置函数批量添加文章的方法
    • Photoshop制作超酷的树藤装饰立体字教程
    • 利用v-viewer结合vue 预览相册
    • Javascript怎样验证手机号码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有