【PHP面试题】请简述项目中优化SQL语句执行效率的方法,从哪些方面,SQL语句如何分析?

SQL注入防御之三——SQL语句预处理(PHP) 这篇文章将会告诉你,PHP怎么使用SQL语句预处理,预处理语句有什么优点,以及分析预处理语句如何防止SQL注入 阅读详情

一、考点

1、查找分析查询速度慢的原因

1)分析SQL查询慢的方法
  • 记录 慢查询日志;
  • 分析查询日志,不要直接打开慢查询日志进行分析,这样比较浪费时间和精力,可以使用 pt-query-digest工具 进行分析。

2)使用 show profile
  • set profiling = 1; 开启,服务器上执行的所有语句会检测消耗的时间,存到临时表中。
  • show profiles;
  • show profile for query 临时表ID;

3)使用 show status
  • show status 会返回一些计数器, show global status 查看服务器级别的所有计数;
  • 有时根据这些计数,可以猜测出哪些操作代价较高或者消耗时间多。

4)使用 show processlist
  • 观察是否有大量线程处于不正常的状态或者特征。

5)使用 explain
  • 分析单条SQL语句。

2、优化查询过程中的数据访问

1)访问数据太多导致性能下降

不要使用 SELECT *。


2)确定应用程序是否在检索大量超过需要的数据,可能是太多行或列

如:一个应用程序在某个步骤下,只需要获取到 10列中的两列的50条数据,但是在查询的时候,特别贪婪的把所有的数据所有列的内容全部都查询了出来,这样本身就是不合理的,所以我们要确定该情况是否存在。


3)确认 MySQL服务器是否在分析大量不必要的数据行

4)避免使用如下SQL语句
  • 查询不需要的记录,使用 limit 解决;
  • 多表关联返回全部列,指定 A.id, A.name, B.age;
  • 总是取出全部列,
PHP执行耗时优化 一、耗时纪录方式 (待补充) 二、耗时优化方法 1、合理使用 fastcgi_finish_request() 函数 根据 PHP 手册的说明:此函数冲刷(flush)所有响应的数据给客户端并结束请求。 这使得客户端结束连接后,需要大量时间运行的任务能够继续运行。 也就是说,执行该函数后,客户端就会收到本次请求的结果,但是服务端会继续执行本次请求剩余的逻辑。这时即使执行一些耗时操作,客户... 阅读详情

相关推荐

PHP中的SQL优化

近期工作中遇到不少代码执行速度偏慢,通常这部分慢速代码都是由于SQL语句使用不当造成的。如何改善SQL的执行质量,是一个优秀PHP程序猿的必备技能。 普遍遇到的慢SQL有以下三种: 1.未走索引 2.where条件里包含子查询,多表联查 3.查询大量数据 根据我的一些工作经验,对这几种情况进行了总结,并在实践中发现了提升它们执行效率的方法。 一.索引:SQL中的

风里寻风的博客 2048

优化sql语句执行效率几点注意事项

优化sql语句执行效率几点需要注意的事项

在银河麒麟V10上部署Atlas 300i Duo:从固件到驱动的一站式踩坑笔记

日期:2025-09-09关键词:鲲鹏920、Atlas 300i Duo、银河麒麟V10、NPU、驱动、固件。

weixin_41544125的博客 2813

PyCharm + Anaconda虚拟环境:完美配置PySide6开发三件套(Designer/UIC/RCC)的避坑指南

本文详细介绍了如何在PyCharm和Anaconda虚拟环境中配置PySide6开发三件套(Designer/UIC/RCC),提供从环境准备到工具集成的完整解决方案。通过清晰的路径定位和PyCharm外部工具配置指南,帮助开发者快速搭建高效的Python GUI开发环境,避免常见配置陷阱。

weixin_28828243的博客 338

使用 Restart Extension 继续解决 Ansys 机械分析

您正在执行复杂或大型的多步有限元分析,突然,您意识到经过数小时的求解后,您需要添加或修改边界条件。在本篇博文中,您将了解如何利用 Ansys Mechanical 中的 RestartAnalysis 扩展来扩展多步分析,方法是合并额外的时间步骤和边界条件,而不会丢失已计算的结果。幸运的是,在 Mechanical 中,有一种直接的方法可以实现这一点,而不会损害您之前的结果,而这在添加新边界条件和使用重新启动点时经常发生。得到的结果符合预期,您可以看到施加的力产生的这两个部分之间的相对位移。

jkh920184196的博客 1233

相机基础知识讲解:CMOS和CCD

相机基础知识讲解:CMOS和CCD

Coppa的博客 5万+

Vivado ILA抓DDR信号(各种IO信号:差分、ISERDES、IOBUFDS等)

Vivado ILA抓DDR信号(各种IO信号:差分、ISERDES、IOBUFDS等)

千歌叹尽执夏的博客 1098

MATLAB算法实战应用案例精讲-【数模应用】校准曲线(附MATLAB、python和R语言代码实现)

模型校准曲线(Calibration Curve),也称为可靠性曲线(Reliability Curve)或概率校准曲线(Probability Calibration Curve),是一种评估分类模型输出概率准确性的图形工具。它可以帮助我们理解模型的预测概率是否与实际标签的分布一致。校准曲线通常包括以下步骤:计算模型预测概率:对于测试集中的每个样本,模型会输出一个概率值,表示样本属于正类的概率。将数据分桶:将这些概率值分成若干个等宽的桶(例如10个桶),每个桶中的样本具有相似的预测概率。

qq_36130719的博客 559

支付宝个人年度账单爬虫实战:从扫码登录到数据解析的全链路解析

作为一名数据爱好者或量化分析师,获取自己的支付宝年度账单不仅是对个人消费行为的深度复盘,更是实现"数据自主权"的第一步。print(f"{row['year']}年: 收入{row['total_income']:.2f} | 支出{row['total_expense']:.2f} | 结余{row['net_savings']:.2f}"){"category": "餐饮", "amount": 12000, "count": 345},"""打开登录页,等待用户扫码,返回Cookie字典"""

2201_76125261的博客 329

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

上一篇: 【PHP面试题】MySQL的SQL语句编写
下一篇: 【PHP面试题】简述MySQL分表操作和分区的工作原理,分别说说分区和分表的使用场景和各自优缺点。
studyphp123
博客等级 码龄9年 85粉丝 99原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值