基本情况:

数据表差不多有一千万条数据,用的是mycat分库。

数据表的里的索引有

PRIMARY id

AppName (AppName, custidStatus, channel)

建表语句如下

CREATE TABLE `eis_email_history` (

`id` bigint(20) NOT NULL DEFAULT '0',

`AppName` int(11) NOT NULL DEFAULT '0',

`emailto` varchar(256) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '收件人email',

`emailfrom` varchar(256) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '寄件人email',

`subject` varchar(256) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '邮件标题',

`content` text COLLATE utf8_unicode_ci NOT NULL COMMENT '邮件内容',

`sendtime` int(11) NOT NULL DEFAULT '0' COMMENT '发送邮件的unixtime',

`sendstatus` tinyint(4) NOT NULL DEFAULT '0' COMMENT '发件状态,0:发送队列中,1:已发送,2:发送失败,3:预制邮箱记录的邮箱暂时不可用',

`channel` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '来源渠道',

`AmazonOrderId` varchar(100) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '???',

`ASIN` varchar(50) COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'asin',

`attachment` text COLLATE utf8_unicode_ci COMMENT '邮件附件,格式为,有多个附件的要分行记录,每行2个参数(以“tab制表符”+“/”+“tab制表符”分隔),第一个参数必选,为文件所在服务器路径,第二个参数为可选,如果输入第二个参数,那么附件名即为第二参数,否则就已文件本身名称为附件名',

`templateId` bigint(20) NOT NULL DEFAULT '0' COMMENT '模板Id',

`custidStatus` int(20) NOT NULL DEFAULT '0' COMMENT '差评Id',

PRIMARY KEY (`id`),

KEY `emailto` (`emailto`(255)),

KEY `sendtime` (`sendtime`),

KEY `sendstatus` (`sendstatus`),

KEY `emailfrom` (`emailfrom`(255)),

KEY `asin` (`ASIN`),

KEY `orderid` (`AmazonOrderId`),

KEY `AppName` (`AppName`,`custidStatus`,`channel`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

首先是没有加order by的

SELECT

`id`,

`emailto`,

`channel`,

`AppName`,

`AmazonOrderId`

FROM

`eis_email_history`

WHERE `AppName` = 21

AND `custidStatus` IN (0, 1, 2)

AND `channel` = '***'

LIMIT 50

这个查询基本都是秒查询,然后explain的结果是:

然后是加了order by id desc的,

SELECT

`id`,

`emailto`,

`channel`,

`AppName`,

`AmazonOrderId`

FROM

`eis_email_history`

WHERE `AppName` = 21

AND `custidStatus` IN (0, 1, 2)

AND `channel` = '***'

ORDER BY id DESC

LIMIT 50

然后这个查询基本都在1分钟以上,explain结果如下,

看情况是加了order by导致where条件的索引没有使用而使用了主键扫描

mysql order by 查询慢_mysql查询性能问题,加了order by速度慢了差不多50倍相关推荐

  1. mysql查询过程从客户端发送查询请求_MySQL查询过程和高级查询

    最近有个需求,要修改现有存储结构,涉及查询条件和查询效率的考量,看了几篇索引和HBase相关的文章,回忆了相关知识,结合项目需求,说说自己的理解和总结. 总体目录如下,上篇介绍了前3小节,分析了索引为 ...

  2. 查询排序_MySQL查询性能优化

    MySQL查询性能的优化涉及多个方面,其中包括库表结构.建立合理的索引.设计合理的查询.库表结构包括如何设计表之间的关联.表字段的数据类型等.这需要依据具体的场景进行设计.如下我们从数据库的索引和查询 ...

  3. mysql数据库查询缓存_MySQL查询缓存与数据库管理

    MySQL查询缓存与数据库管理 上一篇 / 下一篇  2010-01-25 21:51:07 / 个人分类:MYSQL/Cache MySQL查询缓存 注意:查询缓存绝不返回过期数据. 如果一个表发生 ...

  4. mysql复杂连接查询语句_MySQL查询语句之复杂查询

    软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...

  5. mysql是否有缓存区_Mysql查询高速缓存区

    为了提高查询速度,Mysql会维护一个内存区域(官方文档指出,大小至少41984B)对查询结果进行缓存,当查询时发现缓存区里有数据则直接返回结果而不用去执行sql语句. 查询命中的条件 每个缓存查询至 ...

  6. mysql怎么查找列命令_MySQL查询命令-DQL

    MySQL查询命令-DQL EMP //员工表 员工编号 员工名 岗位 领导 入职日期 工资 奖金 部门编号 +-------+--------+-----------+------+-------- ...

  7. mysql日志查询指令_MySQL查询日志总结

    MySQL查询日志介绍 MySQL的查询日志记录了所有MySQL数据库请求的信息.无论这些请求是否得到了正确的执行.默认文件名为hostname.log.默认情况下MySQL查询日志是关闭的.生产环境 ...

  8. mysql本周数据没有填充_MySql查询本周、本月、本年数据(没有数据则补全0)

    最近写项目,发现有很多图表统计,需要查询本周.本月.本年数据.但是图表需要两个数组,一个日期数组,一个数据数组.然而数据库查询却只能查询出有数据的日期数据,所以找了很多资料终于能有补全日期和数据的方法 ...

  9. mysql 查询语句_MySQL查询语句之复杂查询

    MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.在MySQL中经常会有很多复杂的查询,为了节约大家的时间,小编总 ...

最新文章

  1. UIWebView之获取所点位置图片URL
  2. 跟我学Springboot开发后端管理系统5:数据库读写分离
  3. 全球最厉害的14位程序员!
  4. 获取PE文件的区段表
  5. 【SpringBoot】在普通类中获取spring容器中的bean
  6. superset出现A valid API access token is required to use Mapbox data
  7. 国内芯片60个细分领域重要代表企业【收藏】
  8. facebook 开源_Facebook开源主管开放
  9. 【转】vue项目重构技术要点和总结
  10. Apache是干什么的?
  11. Tungsten Fabric知识库丨构建、安装与公有云部署
  12. 机器学习_深度学习毕设题目汇总——图像分类
  13. 一个功能齐全的IOS音乐播放器应用源码
  14. lol 8.21服务器维护,《LOL》8.16版本维护到几点 8月21日更新维护内容汇总
  15. excel入门,如何玩转excel,你早该这么玩Excel笔记9
  16. 机器学习必知的八大神经网络架构
  17. Google推出免费DNS解析服务器【8.8.8.8】
  18. 高通骁龙765/骁龙765G芯片参数分析介绍
  19. acm测试题目数据生成
  20. 中职网络安全2021年国赛Wireshark流量分析题目解析

热门文章

  1. 计算机应用能力考试怎么填,职称计算机应用能力考试网上报名表格怎么填写
  2. mysql 处理json数组
  3. Atomic 原子类总结
  4. 自行车变速器挂不上档,最常用的五个调整技巧
  5. 【渐进交互学习网络:轻量级:超分:工业应用】
  6. 多通道网络KVM系统方案
  7. 上网行为管理包括哪些方面?
  8. 谷歌广告推广效果不佳的原因
  9. Android中的Uri详解
  10. FEELM利用能源管理系统建设绿色工厂,减少500吨碳排放