bitsCN.com
在web开发中,我们经常会写出一些SQL语句,一条糟糕的SQL语句可能让你的整个程序都非常慢,超过10秒一般用户就会选择关闭网页,如何优化SQL语句将那些运行时间 比较长的SQL语句找出呢?MySQL给我们提供了一个很好的功能,那就是慢查询!所谓的慢查询就是通过设置来记录超过一定时间的SQL语句!那么如何应用慢查询呢?
1.开启MySQL的慢查询日志功能
默认情况下,MySQL是不会记录超过一定执行时间的SQL语句的。要开启这个功能,我们需要修改MySQL的配置文件,windows下修改my.ini,Linux下修改my.cnf文件,在[mysqld]最后增加如下命令:
slow_query_log
long_query_time = 1
2.测试慢查询日志功能
(1)进入MySql控制台,执行如下语句:
select sleep(2);
mysql> select sleep(2);
+----------+
| sleep(2) |
+----------+
| 0 |
+----------+
1 row in set (2.12 sec)
(2)查看慢查询日志文件think-slow.log,在文件最后发现:
# Time: 121120 20:06:23
# User@Host: root[root] @ localhost [127.0.0.1]
# Query_time: 2.104120 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
SET timestamp=1353413183;
select sleep(2);
3.解释:
(1)slow_query_log 这句是开启记录慢查询功能,slow_query_log=0关闭;slow_query_log=1开启(这个1可以不写)
(2)long_query_time = 1 这句是记录超过1秒的SQL执行语句
(3)那么这个日志文件存放在什么地方呢?
默认是放在mysql的data目录,并且文件名为host_name-slow.log即 主机名-slow.log,比如在笔者的开发机上就是THINK-slow.log(因为偶用的Thinkpad,呵呵)
(4)如果日志文件不想放在data目录,我们可以通过如下配置指定存放的目录及日志文件名:
slow_query_log_file=file_name
其中file_name就是你的存放日志的目录和文件名,在这里注意有的资料上可能是log-slow-queries=file_name,这个在mysql5.5版已经过时!
4.如何记录低于1s的慢查询记录呢?
MySQL5.21版以前long_query_time 参数的单位是秒,默认值是10。这相当于说最低只能记录执行时间超过 1 秒的查询,怎么记录查询时间超过100毫秒的SQL语句记录呢?在mysql5.21+后版本支持毫秒记录
(1)进入MySql控制台,运行如下sql语句:
set global long_query_time=0.1
该句是设置记录慢查询超过时间100ms的SQL,记住要重启mysql才能生效!
(2)测试
进入mysql控制台,执行如下sql语句:
select sleep(0.5);
查看慢查询日志文件,我们看到最后添加的新信息:
# Time: 121120 20:42:06
# User@Host: root[root] @ localhost [127.0.0.1]
# Query_time: 0.500028 Lock_time: 0.000000 Rows_sent: 1 Rows_examined: 0
SET timestamp=1353415326;
select sleep(0.5);

Python是一门非常流行的编程语言,在Web开发领域中也有广泛应用。随着技术的发展,越来越多的人开始使用异步方式来提高网站性能。在这篇文章中,我们将探讨Pythonweb开发中的异步处理技巧。一、什么是异步?传统的Web服务器使用同步方式处理请求。当一个客户端发起一个请求时,服务器必须等待该请求完成处理后,才能继续处理下一个请求。在高流量的网站上,这种同

在Go中使用CGI,是一种常见的Web开发技术。本文将介绍如何在Go中使用CGI来实现Web应用程序。什么是CGI?CGI即通用网关接口(CommonGatewayInterface),是一种标准的Web服务器和其他应用程序之间进行交互的协议。通过CGI,Web服务器可以将请求发送给其他应用程序,然后接收其响应并将其发送回客户端。CGI是一种非常灵活和可

随着Python在Web开发中的广泛应用与日俱增,其安全性问题也逐渐引起人们的关注。本文将就Pythonweb开发中常见的安全漏洞进行探讨,旨在提高Python开发者的安全意识以及对安全漏洞的认识与防范。跨站脚本攻击(XSS攻击)跨站脚本攻击是一种常见的Web安全漏洞,攻击者通过在网页中注入恶意脚本,获取用户的敏感信息或执行恶意操作。在Pythonweb

Bottle,是一款轻量级的PythonWeb开发框架。它具有基于路由的请求分发器,集成了WSGI服务器,自带模板引擎和具备Python数据类型转JSON的能力等。Bottle的使用非常简单,尤其适合小型项目、API开发和快速原型开发。下面将从Bottle的特点、安装、使用、部署等几个方面介绍Bottle。一、Bottle的特点轻量级Bottle是一个注

Python已经成为了Web开发中的重要语言之一,而加密和解密技术又是Web开发中不可或缺的一部分。在本文中,我将介绍Python中加密和解密技巧。加密和解密简介在Web开发中,数据的安全性始终是至关重要的,尤其是需要传输一些机密数据的时候。因此,加密和解密技术就应运而生,它可以对数据进行保护,确保只有合法的用户才能访问或处理这些数据。简单来说,加密就是将原

Python的Web开发随着互联网时代的到来成为越来越普遍的技术选择,但是在Web应用的开发中,安全问题一直是个长期而且重要的话题。特别是对于访问控制这一问题,很多开发者都不太能处理好。在这篇文章中,我将介绍PythonWeb开发中的访问控制问题,并提供一些解决方案。什么是访问控制?访问控制是指限制一个系统或应用程序中的某一部分被哪些人或者哪些程序所访问的

Pythonweb开发中的数据可视化技术随着数据分析和挖掘的快速发展,数据可视化已然成为其中不可或缺的一部分。Python作为一门强大的编程语言,也成为许多数据科学家和分析师喜爱的工具之一。在Pythonweb开发中,数据可视化技术的应用也变得越来越重要。本文将介绍Pythonweb开发中常用的数据可视化技术及其使用方法。MatplotlibMatpl

随着互联网的不断普及,Web开发领域也以惊人的速度发展着。作为一种简单易用、高效稳定的编程语言,Go在Web开发领域中也呈现出了强劲的表现。Go拥有良好的并发性、高效的内存管理、易于编写和维护的代码等特点,越来越多的开发者开始选择使用Go进行Web开发。本文将着重介绍如何利用Go框架进行高效的Web开发。一、Go语言Web框架介绍G


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)