mysql的时间查询方法整理

本文介绍了如何使用SQL查询特定时间段内的记录,并演示了如何利用date_format函数处理日期格式。

1、两个具体的时间段之间

-- 查询abc系统在20~21号之间生效的记录
SELECT * FROM abc  WHERE VALID_DATE >= '2016-05-20 00:00:00' AND VALID_DATE <= '2016-05-21 23:59:59'; 

2、时间函数

date_format(now(),'%Y-%m-%d')

### MySQL 查询执行时间的查看方法 在 MySQL 中,有多种方式可以用来监控和查看 SQL 查询的执行时间。以下是几种常用的方法: #### 1. 使用 `SHOW PROFILES` 和 `SHOW PROFILE` 通过启用 MySQL 的 Profiling 功能,可以直接获取单条查询的具体耗时情况。 - **启用 Profiling** 可以通过修改系统变量 `profiling` 来开启此功能,默认关闭。 ```sql SET profiling = 1; ``` - **运行查询并查看性能详情** 执行任意一条查询语句后,可以通过以下命令查看其执行时间和资源消耗: ```sql SHOW PROFILES; ``` 这会返回最近几次查询及其对应的 Query_ID 和总耗时[^1]。 如果想进一步了解某次查询的详细性能指标,则可使用如下命令: ```sql SHOW PROFILE FOR QUERY query_id; ``` 此处 `query_id` 是从 `SHOW PROFILES` 命令中获得的一个具体编号。 #### 2. 利用慢查询日志 (Slow Query Log) 当某些查询响应过慢时,可通过激活慢查询日志来捕获它们。 - **配置慢查询日志** 编辑 my.cnf 文件或者动态调整相关参数即可完成设置。主要涉及两个重要选项: - `slow_query_log`: 是否启动慢查询日志记录; ```sql slow_query_log=ON; ``` - `long_query_time`: 定义多少秒以上的查询会被认为是“慢”的标准;默认值为 10 秒。 ```sql long_query_time=2; -- 设置阈值为2秒 ``` - **分析慢查询日志** 日志文件保存路径由 `slow_query_log_file` 参数指定。对于已有的慢查询记录,还可以借助工具如 pt-query-digest 加工整理成更易读的形式[^2][^3]。 #### 3. EXPLAIN 分析查询计划 虽然这不是直接测量时间的方式,但是利用 `EXPLAIN` 关键字可以获得关于某个特定 SELECT 请求是如何被执行的信息,从而间接推测可能存在的效率瓶颈所在之处。 ```sql EXPLAIN SELECT * FROM table_name WHERE condition; ``` 它提供了诸如表访问顺序、使用的索引种类等信息,帮助开发者识别低效操作并采取相应措施加以改进[^2]。 ### 示例代码展示 下面给出一段简单的例子演示如何结合以上技术手段定位问题源头: 假设存在一张名为 users 的大表, 我们希望知道这条复杂查询的实际表现: ```sql SELECT COUNT(*) AS user_count FROM users u JOIN orders o ON u.id=o.user_id WHERE DATE(o.order_date)=CURDATE(); ``` 先打开 profile 支持: ```sql SET profiling = 1; ``` 接着正常发出请求: ```sql -- Your complex query here... ``` 最后调取诊断资料: ```sql SHOW PROFILES; SHOW PROFILE FOR QUERY last_query_id; ``` 如果发现该过程持续太久,则考虑查阅对应时段内的慢查日记,并辅之 explain 结果深剖析根本原因。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值