【PHP框架应用-Yii2】elasticsearch, mysql查询语句记录

查询数据量大,导致接口返回慢,这是我近期优化的重点。

日志不完善,排错速率很慢,因此增加了日志输出。

mysql 查询语句输出

function get_sql_query($queryBuilder)
{
    $sql = $queryBuilder->createCommand()->getRawSql();

    // 如果是控制台应用
    if (strstr(Yii::$app->id, "console")) {
        return $sql;
    }

    // 否则输出接口
    return print_r(array("api" => sprintf("%s %s", request()->getMethod(), request()->getUrl()),"sql" => $sql), true);
}

elastic 查询语句输出

这个查询语句封装的代码,是从yii框架中扒出来的,对返回内容进行了一些整合

function get_es_query(\yii\elasticsearch\Query $queryBuilder)
{
    $cmd = $queryBuilder->createCommand();
    $query = $cmd->queryParts;
    if (empty($query)) {
        $query = '{}';
    }
    if (is_array($query)) {
        $query = \yii\helpers\Json::encode($query);
    }
    $url = [$cmd->index !== null ? $cmd->index : '_all'];
    if ($cmd->type !== null) {
        $url[] = $cmd->type;
    }
    $url[] = '_search';

    $createUrl = function ($path, $options = []) {
        if (!is_string($path)) {
            $url = implode('/', array_map(function ($a) {
                return urlencode(is_array($a) ? implode(',', $a) : $a);
            }, $path));
            if (!empty($options)) {
                $url .= '?' . http_build_query($options);
            }
        } else {
            $url = $path;
            if (!empty($options)) {
                $url .= (strpos($url, '?') === false ? '?' : '&') . http_build_query($options);
            }
        }
        return urldecode($url);
    };

    // 如果是控制台应用
    if (strstr(Yii::$app->id, "console")) {
        return print_r(["url" => sprintf("%s %s", "GET", $createUrl($url, $cmd->options)), "query" => $query], true);
    }
    // 否则输出接口
    return print_r(["api" => sprintf("%s %s", request()->getMethod(), request()->url), "url" => sprintf("%s %s", "GET", $createUrl($url, $cmd->options)), "query" => $query ], true);
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • MYSQL 基础知识 1 MySQL数据库概要 2 简单MySQL环境 3 数据的存储和获取 4 MySQL基本操...
    Kingtester阅读 12,373评论 5 116
  • 今天看到一位朋友写的mysql笔记总结,觉得写的很详细很用心,这里转载一下,供大家参考下,也希望大家能关注他原文地...
    信仰与初衷阅读 10,175评论 0 30
  • PHP学习线路图 PHP教程 PHP教程PHP简介PHP环境设置PHP语法概述PHP变量类型PHP常量类型 PHP...
    茶茶点阅读 4,090评论 1 4
  • 转 # https://www.cnblogs.com/easypass/archive/2010/12/ 08/...
    吕品㗊阅读 13,318评论 0 44
  • 一、MySQL优化 MySQL优化从哪些方面入手: (1)存储层(数据) 构建良好的数据结构。可以大大的提升我们S...
    宠辱不惊丶岁月静好阅读 7,300评论 1 8

友情链接更多精彩内容