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

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

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了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学习记录之强制指定索引进行查询

相关文章

  • 浅谈小程序中下拉刷新和上拉加载功能怎么实现?(附代码)
  • CDR绘制红色枫叶背景插画
  • JavaScript中字符串(string)如何转json
  • 让dede:flink拥有和dede:arclist一样使用limit标签
  • Laravel删除Cookie的小坑
  • 好看短视频解析下载Python脚本
  • 总结分享一些基于jQuery的前端面试(含移动端常见问题)
  • uniapp上如何实现安卓app微信登录功能(操作流程总结)
  • DedeCMS织梦模板使likearticle标签支持排序orderby的方法
  • Photoshop制作光滑的金色发光字

文章分类

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

最近更新的内容

    • Phpcms V9 栏目图片调用方法
    • 常见的5个PHP编码小陋习以及优化实例讲解
    • 完全掌握AWS S3在Laravel中的使用
    • HTTP 返回状态码汇总
    • JavaScript怎么求两个数的最大公约数
    • PS绘制精致陌陌图标
    • 关于WordPress局域网内外同时访问
    • Photoshop制作浮雕立体效果的艺术字
    • ThinkPHP5通过ajax插入图片并实时显示(完整代码)
    • 纯CSS使图片有放大效果代码

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

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