我正在使用Laravel

PHP框架.

说我有这样的问题:

public function order($orderby){

\DB::connection()->disableQueryLog();

if($orderby == "level"){

$clan = Clans::orderBy('level', 'DESC')

->orderBy('exp', 'DESC')

->paginate(100,['id', 'clanid', 'name', 'level', 'exp', 'warwinpercent', 'warswon', 'playercount', 'score']);

}elseif($orderby == "score"){

$clan = Clans::orderBy('score', 'DESC')

->paginate(100,['id', 'clanid', 'name', 'level', 'exp', 'warwinpercent', 'warswon', 'playercount', 'score']);

}elseif($orderby == "warwinpercent"){

$clan = Clans::orderBy('warwinpercent', 'DESC')

->where('warswon', '>=', '100')

->paginate(100,['id', 'clanid', 'name', 'level', 'exp', 'warwinpercent', 'warswon', 'playercount', 'score']);

}else

$clan = Clans::paginate(100,['id', 'clanid', 'name', 'level', 'exp', 'warwinpercent', 'warswon', 'playercount', 'score']);

\DB::connection()->enableQueryLog();

return view('clans.index')->with('clan', $clan);

}

这些大约需要10-15秒才能运行.

我有一个这样的:

public function index(){

$clan = Clans::orderBy('clanid', 'ASC')

->paginate(100,['id', 'clanid', 'name', 'level', 'exp', 'warwinpercent', 'warswon', 'playercount', 'score']);

return view('clans.index')->with('clan', $clan);

}

几乎立即加载.

为什么前三个比前一个花费的时间长得多?我为我需要在表格中搜索的所有变量添加了一个索引,但它仍然需要很长时间才能工作.我是否需要在MySql端做任何事情才能重建索引?我已经尝试过优化表,我也多次重启MySql服务..

如果无法加速它们,那么有一种简单的方法可以在加载页面时向用户显示加载动画吗?

谢谢!

UPDATE

以下是快速查询的Explain结果:

explain extended select `id`, `clanid`, `name`, `level`, `exp`, `warwinpercent`, `warswon`, `playercount`, `score` from `clans` order by `clanid` asc limit 100 offset 0

这是orderBy级别查询的Explain结果.

explain extended select `id`, `clanid`, `name`, `level`, `exp`, `warwinpercent`, `warswon`, `playercount`, `score` from `clans` order by `level` desc, `exp` desc limit 100 offset 0

这是SHOW INDEX FROM部落的结果.

更新2

我也有这个代码在列名中搜索一个字符串

public function clans(){

if((isset($_GET['search'])) && $_GET['search'] != ""){

$search = $_GET['search'];

$result = Clans::where('name', 'LIKE', '%'.$search.'%')->paginate(100,['id', 'clanid', 'name', 'level', 'exp', 'warwinpercent', 'warswon', 'playercount', 'score']);

$data = array(

'result' => $result,

'search' => $search

);

return view('search.clans')->with($data);

}else

return view('errors.1')->with('message', 'You entered an invalid search term');

}

这可能需要几秒钟才能加载..

解释查询:

explain extended select `id`, `clanid`, `name`, `level`, `exp`, `warwinpercent`, `warswon`, `playercount`, `score` from `clans` where `name` LIKE '%lol%' limit 100 offset 0

mysql php加速_PHP加速MySql查询相关推荐

  1. pdo mysql防注入_Php中用PDO查询Mysql来避免SQL注入风险的方法

    当我们使用传统的 mysql_connect .mysql_query方法来连接查询数据库时,如果过滤不严,就有SQL注入风险,导致网站被攻击,失去控制.虽然可以用mysql_real_escape_ ...

  2. php mysql emoji表情_php 让MySQL支持Emoji表情 mysql 5.5.3+

    让MySQL支持Emoji表情 mysql 5.5.3+ 让mysql支持Emoji表情,涉及无线相关的 MySQL 数据库建议都提前采用 utf8mb4 字符集. mysql 版本 5.6 1 解决 ...

  3. php+mysql投票代码_PHP+jQuery+MySql实现红蓝投票功能

    本文是一篇综合知识应用类文章,需要您具备PHP.jQuery.MySQL以及html和css方面的基本知识.本文在<PHP+MySql+jQuery实现的"顶"和" ...

  4. php连接mysql乱码原因_PHP连接MYSQL出现乱码的原因与解决办法

    PHP连接mysql出现乱码的原因与解决方法 解决MySql数据库乱码的一个首要前提是保证 数据库+数据表+前端显示 编码一致,国内项目一般统一设定为GB2312或GBK,而国际化项目则一般使用utf ...

  5. php查询mysql数据库乱码_PHP怎样处理查询MySQL数据库中文乱码?_后端开发

    PHP如何处理查询MySQL数据库中文乱码? 1.将MySQL数据库默许的编码是UTF-8: 2.在MySQL中建立表时,将字符集设置为UTF-8: 3.在PHP中查询数据之前,将数据库编码设置为UT ...

  6. php获取mysql数据菜鸟_PHP 连接 MySQL | 菜鸟教程

    PHP 连接 MySQL PHP 5 及以上版本建议使用以下方式连接 MySQL : MySQLi extension ("i" 意为 improved) PDO (PHP Dat ...

  7. php mysql操作封装_php封装MySQL数据库基本操作

    一周之后就回家喽,闲来无聊,学习了一下 php 面向对象的封装 什么是面向对象: 对象:其实就是对数据和拥有的属性进行封装一种抽象, 故出现了封装,多态的概念,在这里就不扯太多概念性的东西, 还是代码 ...

  8. mysql导入分卷_php实现mysql备份恢复分卷处理的方法_PHP

    本文实例讲述了php实现mysql备份恢复分卷处理的方法.分享给大家供大家参考.具体分析如下: 分卷处理就是把握们要处理的数据分成一个个小文件进行处理了,这里我来给大家介绍一个php mysql备份恢 ...

  9. php和mysql的概述_PHP的MySQL扩展:MySQL数据库概述_MySQL

    一.SQL:结构化查询语言 SQL(Structured Query Language)是高级的非过程化变成语言,专门用于查询和修改数据库的信息以及对数据库进行管理和维护的标准语言.SQL语言结构简单 ...

最新文章

  1. leetcode 542. 01 Matrix | 542. 01 矩阵(图解,广度优先搜索)
  2. OutLook2016修改注册表迁移.ost文件数据
  3. js 判断 浏览器 是否为 微信 浏览器
  4. Android下常见的内存泄露 经典
  5. 应用优化前心路历程~
  6. MSSql ID自动增长删除数据重1开始
  7. 一步一步带你安装Node.js并创建第一个Vue项目
  8. 移动开发或将被颠覆?
  9. bzoj 4952: [Wf2017]Need for Speed(二分)
  10. Java多线程进阶(三六)—— J.U.C之collections框架:DelayQueue
  11. 卷积神经网络问题总结
  12. netcfg.hlp 官方版
  13. 中兴B860AV2.1B电视盒子刷机固件
  14. ZZULIOJ1086: ASCII码排序(多实例测试)
  15. 从「英语流利说」们再谈虚夸的AI教育:一场取代老师的闹剧和收场法则
  16. 第二章(1) SCADA/EMS系统的概述
  17. Centos7超级无敌简单的PXE安装系统手动与自动化
  18. Linux下离线或在线安装libreoffice
  19. 窗口置顶工具v2.4.0
  20. 思科devnet_CCNA、CCNP、CCIE及Devnet认证

热门文章

  1. 基于Docker部署Wizard文档管理系统
  2. Redis操作相关命令:查看、停止、启动
  3. 查看keyStore密钥
  4. 如何查看服务器CPU核心数和线程数
  5. win10的计算机管理用户和组在哪里,Win10专业版下管理用户和组的技巧
  6. 设计模式-牛刀小试02
  7. 阿里P8高级技术专家自述被裁员,疑似给市长写信,房贷月供3w,压力很大,出门面试找工作很难!...
  8. CSS3实现立体书效果
  9. Office 365 切换语言设置
  10. matlab画图形的包络图,求大神指点绘制空间内散点图的包络面,,,散点程序如下...