热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysqldatetime索引慢,mysql–在datetime列上选择慢查询

我在MySQL中有一个表,它有大约1000万个记录,现在一个过去需要微秒的查询现在需要8秒才能执行!这是我的表结构:CREATETABLEruns(id

我在MySQL中有一个表,它有大约1000万个记录,现在一个过去需要微秒的查询现在需要8秒才能执行!

这是我的表结构:

CREATE TABLE `runs` (

`id` INT(11) NOT NULL AUTO_INCREMENT,

`runstub` VARCHAR(20) DEFAULT NULL,

`userid` INT(11) DEFAULT NULL,

`processid` INT(11) DEFAULT NULL,

`rundata` VARCHAR(255) DEFAULT NULL,

`token` VARCHAR(60) DEFAULT NULL,

`created_at` DATETIME DEFAULT NULL,

PRIMARY KEY (`id`),

KEY `created_at` (`created_at`)

) ENGINE=INNODB AUTO_INCREMENT=10039971 DEFAULT CHARSET=latin1;

这是一个超过8秒的查询…

SELECT MIN(created_at), MAX(created_at) FROM runs ORDER BY id DESC LIMIT 10000

有没有办法可以优化此查询以使其在不到一秒的时间内运行?

这是我想要实现的结果:从最后的10k记录(不是全部),花费的时间.我想要它开始的时间(MIN(created_at))和​​它结束的时间(MAX(created_at)).如何在没有限制的情况下实现这一目标?

解决方法:

这是一次尝试:

SELECT MIN(created_at), MAX(created_at)

FROM (

SELECT created_at

FROM runs

ORDER BY id DESC

LIMIT 10000

) as x;

您的查询评估为:

SELECT MIN(created_at), MAX(created_at) FROM runs

然后根据id(没有意义)对它进行排序,最多返回10000行(仅存在1行)

我的查询首先选择10000个最近的id

SELECT created_at

FROM runs

ORDER BY id DESC

LIMIT 10000

从那里它为created_at选择min和max

标签:query-performance,mysql

来源: https://codeday.me/bug/20190806/1596040.html



推荐阅读
  • MySQL 聚簇索引二级索引辅助索引
    MySQL聚簇索引&&二级索引&&辅助索引MySQL非聚簇索引&&二级索引&&辅助索引mysql中每个表都有一个聚簇索引(clusteredindex) ... [详细]
  • 一关键字1.什么是关键字关键字就是C语言提供的有特殊含义的符号也叫做保留字C语言一共提供了32个关键字这些关键字都被C语言赋予了特殊含义autodoubleintstructb ... [详细]
  • 19、【翻译】模块inspect—Inspectliveobjects翻译自Python官方文档:29.12.inspect—Inspectliveobjectsin ... [详细]
  • 这篇主要介绍在这次项目中使用的peewee文档地址:首先我们要初始化一个数据库连接对象。这里我使用了peewee提供的链接池。当然你也可以直接指定连接例如: ... [详细]
  • c语言编写的日历
    输入年份如2013,显示2013年的日历。思路:1.查找每个月1号是星期几(这里利用了1990年1月1号是星期一)计算年份如 ... [详细]
  • 1.数据库简介1.数据库的能干什么持久的存储数据备份和恢复数据快速的存取数据权限控制2.数据库的类型1.关系数据库​特点:以表和表的关联构成的数据结构 ... [详细]
  • mysql索引不生效
    并不是索引越多越好,索引是一种以空间换取时间的方式,所以建立索引是要消耗一定的空间,况且在索引的维护上也会消耗资源。本文首发我的个人博客mysql索引不生效这里有张用户浏览商品表, ... [详细]
  • 1.pwd(printworkingdirectory)打印当前工作空间--打印当前--2.ls ... [详细]
  • 集合排序TreeSet
    从视频中学得:集合排序需要注意两点:(1)传入对象要自己能排序(自己提供排序方法); ... [详细]
  • 数据库的拓展名有多少种,如何识别四种模糊数据库指能够处理模糊数据的数据库。一般的数据库都是以二直逻辑和精确的数据工具为基础的,不能表示许多模糊不清的事情。随着模糊数学理论体系的建立 ... [详细]
  • Vue实现倒计时组件(可自定义时间倒计时功能的组件):
    一、创建countDown.vue(倒计时组件): ... [详细]
  • 查找注解处理方法_Shiro权限注解与Aop冲突问题探究
    查找注解处理方法_Shiro权限注解与Aop冲突问题探究 ... [详细]
  • 重新获取Onsen用户界面范围组件原文:https://ww ... [详细]
  • 原文链接:yacc术语英文中文Thelexicalanalyzer词法分析器Literalcharacters原义字符Specification规范标准nonte ... [详细]
  • spring源码编译流程:Spring5源码下载第一步:https:github.comspring-projectsspring-framewor ... [详细]
author-avatar
小石头
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有