首页 > 数据库 >SQL语句执行超时问题

SQL语句执行超时问题

时间:2024-04-02 23:44:53浏览次数:11  
标签:语句 JOIN 临时 SQL 日志 超时

  上周遇到一个SQL超时问题,多个JOIN,最后SUM求和,客户日志里有超时信息。

  但是奇怪的是把日志里的超时单独拿出来放到SQL里执行,并没有超时,奇怪得很。

  原因有很多,其中一种是“参数嗅探”,具体细节可以参考其他文章了解一二。

  简单说下怎么优化的,分两个方向:

  1、多表JOIN,改成先得到一张临时表,再通过临时表去JOIN余下的表

  2、查询时带上日期范围,避免统计所有数据

  优化后,暂时没有再看到这个地方的超时信息,说明有一定作用。在实际的开发过程中, 应当避免很多表JOIN,以及大表JOIN,优先对数据做过滤,再关联,必要时使用临时表。

标签:语句,JOIN,临时,SQL,日志,超时
From: https://www.cnblogs.com/sunshine-wy/p/18111739

相关文章

  • 20240402,<<,>>,控制流:while语句 ,for语句
    ……学很少,学很慢还是比不学强点是吧,救命昨天不是很懂<<,>>输入输出iostream,输入流istream输出流ostream,COUT,CIN,CERR,CLOG#include<iostream>intmain(){ std::cout<<"entertwonumbers:"<<std::endl; intv1=0,v2=0; std::cin>>v1......
  • mysql基于布尔的盲注,使用python脚本爆破
    使用python脚本,判断返回页面中是否包含成功的flag图片,爆破出来数据库中的内容,实现自动爆破importrequestsimporttimeurl="http://127.0.0.1/sqli-labs-master/Less-14/"payload={"uname":"","passwd":"123456","submit&q......
  • SQL相关笔记-不常用 容易忘记的一些语法规则记录
    1.查下表中只有一条的数据SELECTuserId,count(userId)FROM表名GROUPbyuserId2. 根据userId去重selectdistinctuserIdfrom表名3.查询数据库中含有某个字段的所有表名selectDISTINCTTABLE_NAMEfrominformation_schema.`COLUMNS` whereTABLE_SCHEMA='数......
  • C++ 条件与 If 语句:掌握逻辑判断与流程控制精髓
    C++条件和If语句您已经知道C++支持数学中的常见逻辑条件:小于:a<b小于或等于:a<=b大于:a>b大于或等于:a>=b等于:a==b不等于:a!=b您可以使用这些条件来针对不同的决定执行不同的操作。C++具有以下条件语句:使用if来指定一个代码块,如果指定的条件为true,则......
  • 使用LangChain SQLChain连接LLM和SQL数据库
    大家好,近年来大型语言模型(LLMs)因在多个领域的文本生成能力受到广泛关注。然而,LLMs有时会产生错误或生成无意义的文本,这种现象常被称为“幻觉”。例如,询问ChatGPT法国是什么时候赠送给立陶宛维尔纽斯电视塔的,ChatGPT可能错误地会回答“在1980年”,这与事实不符,因为法国与维尔纽斯......
  • 《从0到1:CTFer成长之路》题目-SQL注入-2
    《从0到1:CTFer成长之路》题目SQL注入-2:题目类型:web题目描述:打开靶机,出现下面这种界面:我们访问login.php:我们再访问一下user.php:解题方法:这里我们知道login.php是一个后台管理系统的登陆界面,user.php显示的是一句话,看了一下user.php的源码并没有发现什么有用的信息,根据......
  • MySQL、Redis 和 Zookeeper 实现分布式锁方法及优缺点
    MySQL、Redis和Zookeeper都可以用来实现分布式锁,每种技术都有其特定的实现方法以及各自的优缺点。MySQL分布式锁实现方法在MySQL中实现分布式锁通常涉及到使用数据库表。可以创建一个专用的锁表,并利用行的唯一性(例如利用唯一索引)来实现锁机制。使用基于事务的 FORUP......
  • Flink Sql 的查询
    一、DataGen& Print        (1)创建数据生成器源表CREATETABLEsource(    idINT,    tsBIGINT,    vcINT)WITH(    'connector'='datagen',    'rows-per-second'='1',    'fields.id.kind'='ran......
  • docker下mysql连接数修改后不生效问题的解决
    使用容器的方式使用mysql,在创建mysql容器的时候,映射了配置文件的路径(我映射的路径是:/home/env/mysql/config/),当修改了路径中配置文件中的最大连接数后,重启容器后,发现参数是不生效的情况,你遇到过吗?先说结果:是权限的问题,777权限会被mysql认为是安全的问题,忽略这种文件。具体如下:......
  • 配置Linux上的MySQL
    MySQL数据库环境搭建和编程MySQL环境安装设置ubuntu环境安装mysql-server和mysql开发包,包括mysql头文件和动态库文件,命令如下:sudoapt-getinstallmysql-server=》安装最新版MySQL服务器sudoapt-getinstalllibmysqlclient-dev=》安装开发包ubuntu默认安装最新的mysq......