mysql 查询优化中遇到的疑惑

vion77 2016-07-30 10:02:18
mysql加索引不一定比加索引更快,但在已使用了索引情况下查询rows 条目更少的情况下,sql语句既然更慢?


图一使用索引 查询时间0.2秒


图二没使用索引0.1秒

sql语句

SELECT sum(val) as all,`type` FROM `v4_finance_history` WHERE `name` = 'c' AND `edit_time` BETWEEN '1469808000' AND '1469894399' GROUP BY type
...全文
335 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
vion77 2016-08-03
  • 打赏
  • 举报
回复
引用 8 楼 cwk44 的回复:
你可以试着建一个name,edit_time 的联合索引,理论上这个索引会更快 理论上走索引Extra也应该有用了临时表
我以前的理论和你一样,但事实打败了我,所以才有此贴
vion77 2016-08-03
  • 打赏
  • 举报
回复
引用 7 楼 Johnsylm 的回复:
表是同一个表,不过肯定不是相同的查询语句 , 不然楼主是怎么做到一条用到索引另一条没用到索引? 所以先给出两条完整的查询 . 另外可以具体打开 mysql 的 profiling 记下两条语句的查询过程 , 然后详细对比每一步所花费的时间 , 仔细对比时间到底花在哪 .
sql同一句啊,索引删除掉不就没索引了,重新加索引不就有索引???
cwk44 2016-08-02
  • 打赏
  • 举报
回复
你可以试着建一个name,edit_time 的联合索引,理论上这个索引会更快 理论上走索引Extra也应该有用了临时表
灰灰666 2016-08-02
  • 打赏
  • 举报
回复
表是同一个表,不过肯定不是相同的查询语句 , 不然楼主是怎么做到一条用到索引另一条没用到索引? 所以先给出两条完整的查询 . 另外可以具体打开 mysql 的 profiling 记下两条语句的查询过程 , 然后详细对比每一步所花费的时间 , 仔细对比时间到底花在哪 .
xuzuning 2016-08-01
  • 打赏
  • 举报
回复
图一 rows=172578 图二 rows=334134 如果是同一表的同一查询(仅 name 列有无索引) 显然有一次查询是错误的,或者你的索引文件损坏了
vion77 2016-08-01
  • 打赏
  • 举报
回复
引用 4 楼 cwk44 的回复:
有索引走了17W行,没索引走了34W行,理论上走行数多的肯定比行数少的来得长。 你看到的时间少是个假象,因为mysql有个缓存机制 第一条语句的结果会放到缓存中,第二次查同样的语句直接把第一次的结果返回。 验证很简单,你只要换一条语句先查没索引的,再查有索引的就行了。 而且我还发现你两条语句应该是不一样的,应该是第一条少加了group by 加了group by应该是要使用临时表的,你可以再试试看。
验证很简单,你只要换一条语句先查没索引的,再查有索引的就行了。 这个是执行了无数遍,得到的结果一样 而且我是每次重启整个服务去测试,phpmyadmin 和 Navicat 都测
u014567183 2016-07-30
  • 打赏
  • 举报
回复
从截图上看,rows不一样呀
vion77 2016-07-30
  • 打赏
  • 举报
回复
同一个库啊 sql语句都一样的,2种情况一种加了索引一种删除了索引
xuzuning 2016-07-30
  • 打赏
  • 举报
回复
希望你没有搞错! 你的两次测试,涉及的表行数都不一样。不是对等的条件,怎么能对比呢?
cwk44 2016-07-30
  • 打赏
  • 举报
回复
有索引走了17W行,没索引走了34W行,理论上走行数多的肯定比行数少的来得长。 你看到的时间少是个假象,因为mysql有个缓存机制 第一条语句的结果会放到缓存中,第二次查同样的语句直接把第一次的结果返回。 验证很简单,你只要换一条语句先查没索引的,再查有索引的就行了。 而且我还发现你两条语句应该是不一样的,应该是第一条少加了group by 加了group by应该是要使用临时表的,你可以再试试看。

20,359

社区成员

发帖
与我相关
我的任务
社区描述
“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法利用了C、Java和Perl,该语言的主要目标是允许web开发人员快速编写动态网页。
phpphpstorm 技术论坛(原bbs)
社区管理员
  • 开源资源社区
  • phpstory
  • xuzuning
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧