首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
php8
input
less
erlang
sum
php7
config
regex
timezone
netty
js
default
php5
substring
tags
command
lua
md5
settings
datetime
cpython
frameworks
actionscrip
testing
email
ip
buffer
runtime
triggers
controller
typescript
utf-8
cSharp
keyword
jsp
vbscript
eval
spring
blob
metadata
bit
uml
uri
include
string
heatmap
bytecode
golang
main
javascript
match
plugins
heap
io
shell
replace
subset
select
web3
php
range
usb
request
cPlusPlus
grid
client
expression
go
process
python3
get
const
stream
chat
filter
node.js
case
int
loops
当前位置:
开发笔记
>
编程语言
> 正文
优化SQL的一般步骤
作者:壹起等绿灯 | 来源:互联网 | 2023-06-20 09:32
1,通过showstatus命令了解各种SQL的执行频率比如Com_select记录执行select查询的操作次数,一次查询只累加12,定位执行效率较低的SQL语句1通过慢查
1,通过show status 命令了解各种SQL的执行频率
比如Com_select 记录执行select查询的操作次数,一次查询只累加1
2,定位执行效率较低的SQL语句
1通过慢查询日志定位,2慢查询在查询结束后才记录,使用show processlist查看
3,通过EXPLAIN分析低效SQL的执行计划
4,通过show profile 分析SQL(>mysql5.0.37)
mysql> select @@have_profiling;
+------------------+
| @@have_profiling |
+------------------+
| YES |
+------------------+
1 row in set (0.00 sec) 表示支持
mysql> select @@profiling;
+-------------+
| @@profiling |
+-------------+
| 0 |
+-------------+
1 row in set (0.00 sec) 默认关闭 可以set profiling=1;开启
mysql> show profiles;
+----------+------------+--------------------------------------------+
| Query_ID | Duration | Query |
+----------+------------+--------------------------------------------+
| 1 | 0.02342575 | select * from br_member where user_id<1000 |
+----------+------------+--------------------------------------------+
1 row in set (0.00 sec)
mysql> show profile for query 1;(这里的1 代表show profiles查出的query_id的值)
+----------------------+----------+
| Status | Duration |
+----------------------+----------+
| starting | 0.000115 |
| checking permissions | 0.000013 |
| Opening tables | 0.000044 |
| System lock | 0.000025 |
| init | 0.000097 |
| optimizing | 0.000019 |
| statistics | 0.000084 |
| preparing | 0.000020 |
| executing | 0.000005 |
| Sending data | 0.022893 |
| end | 0.000012 |
| query end | 0.000006 |
| closing tables | 0.000013 |
| freeing items | 0.000071 |
| logging slow query | 0.000005 |
| cleaning up | 0.000004 |
+----------------------+----------+
16 rows in set (0.00 sec)
在获取到最消耗时间的线程状态以后,mysql支持进一步选择all,cpu,block io,context,switch,page faults等明细类型来查看mysql在使用什么资源上耗费了过高的时间,如下选择查看cpu的消耗时间
mysql> show profile cpu for query 1;
+----------------------+----------+----------+------------+
| Status | Duration | CPU_user | CPU_system |
+----------------------+----------+----------+------------+
| starting | 0.000115 | 0.000000 | 0.000000 |
| checking permissions | 0.000013 | 0.000000 | 0.000000 |
| Opening tables | 0.000044 | 0.000000 | 0.000000 |
| System lock | 0.000025 | 0.000000 | 0.000000 |
| init | 0.000097 | 0.000000 | 0.000000 |
| optimizing | 0.000019 | 0.000000 | 0.000000 |
| statistics | 0.000084 | 0.000000 | 0.000000 |
| preparing | 0.000020 | 0.000000 | 0.000000 |
| executing | 0.000005 | 0.000000 | 0.000000 |
| Sending data | 0.022893 | 0.015600 | 0.000000 |
| end | 0.000012 | 0.000000 | 0.000000 |
| query end | 0.000006 | 0.000000 | 0.000000 |
| closing tables | 0.000013 | 0.000000 | 0.000000 |
| freeing items | 0.000071 | 0.000000 | 0.000000 |
| logging slow query | 0.000005 | 0.000000 | 0.000000 |
| cleaning up | 0.000004 | 0.000000 | 0.000000 |
+----------------------+----------+----------+------------+
16 rows in set (0.00 sec)
5、通过trace分析优化器如何选择执行计划
6、确定问题并采取相应的措施
show full processlist
mysql
sql
select
日志
process
list
io
cpu
text
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
js
如何限制php数据库链接数和连接超时时间?
本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ...
[详细]
蜡笔小新 2023-12-14 14:06:10
sum
关于Linq to sql 实现 模糊查询 string数组
前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ...
[详细]
蜡笔小新 2023-12-13 09:34:59
default
Spring源码解密之默认标签的解析方式分析
本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ...
[详细]
蜡笔小新 2023-12-14 17:24:50
ip
CSS3选择器的使用方法详解,提高Web开发效率和精准度
本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ...
[详细]
蜡笔小新 2023-12-14 14:37:52
default
关于cuowu类的错误提示和使用AdjustmentListener的问题
本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ...
[详细]
蜡笔小新 2023-12-13 22:09:56
js
Linux进程控制块PCBtask_struct结构体结构及作用详解
本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ...
[详细]
蜡笔小新 2023-12-13 21:31:18
sum
图解redis的持久化存储机制RDB和AOF的原理和优缺点
本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ...
[详细]
蜡笔小新 2023-12-13 20:24:11
ip
计算机存储系统的层次结构及其优势
本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ...
[详细]
蜡笔小新 2023-12-13 17:32:41
ip
VB.NET在线急等问题解决方法,如何统计数据库字段下的数据并显示在文本框里?
本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ...
[详细]
蜡笔小新 2023-12-13 15:15:30
datetime
SpringJdbcTemplate的使用详解
本文详细介绍了Spring的JdbcTemplate的使用方法,包括执行存储过程、存储函数的call()方法,执行任何SQL语句的execute()方法,单个更新和批量更新的update()和batchUpdate()方法,以及单查和列表查询的query()和queryForXXX()方法。提供了经过测试的API供使用。 ...
[详细]
蜡笔小新 2023-12-13 14:27:11
testing
问题2:重新命名或者移动数据文件、日志文件到新的位置
本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ...
[详细]
蜡笔小新 2023-12-13 13:02:24
datetime
MyBatis多表查询与动态SQL使用
本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ...
[详细]
蜡笔小新 2023-12-12 17:12:51
ip
Android 新闻App的本地服务器搭建教程
本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ...
[详细]
蜡笔小新 2023-12-14 17:15:19
ip
javascript – 概述在Firefox上无法正常工作
我试图提出一些自定义大纲,以达到一些Web可访问性建议.但我不能用Firefox制作.这就是它在Chrome上的外观:而那个图标实际上是一个锚点.在Firefox上,它只概述了整个 ...
[详细]
蜡笔小新 2023-12-14 10:20:38
config
Spring 3.1:数据源未自动连接到@Configuration类的错误原因及解决方法
本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ...
[详细]
蜡笔小新 2023-12-14 03:54:26
壹起等绿灯
这个家伙很懒,什么也没留下!
Tags | 热门标签
php8
input
less
erlang
sum
php7
config
regex
timezone
netty
js
default
php5
substring
tags
command
lua
md5
settings
datetime
cpython
frameworks
actionscrip
testing
email
ip
buffer
runtime
triggers
controller
RankList | 热门文章
1
计算机等级考试与网络工程师考试的区别在哪里?
2
centos安装Mysql的方法及步骤详解
3
Oracle :修改数据库服务器字符集
4
win10待机后无法唤醒怎么办的解决方法
5
javascript和java的关系,JavaScript和java的关系
6
揭秘阿里云WAF背后神秘的AI智能防御体系
7
如何使用PHP代码将表格导出为UTF8格式的Excel文件
8
绿联五合一扩展坞:轻薄笔记本的刚需产品
9
Android自定义控件绘图篇之Paint函数大汇总
10
OkHttp3的基本使用及其特性
11
Java面经整理及相关概念解析
12
Explain如何助力SQL语句的优化及其分析方法
13
Spark实现高斯朴素贝叶斯模型的低配版
14
Ubuntu下创建deb安装包及离线安装包制作的方法
15
实现一个通讯录系统,可添加、删除、修改、查找、显示、清空、排序通讯录信息
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有