加入收藏 | 设为首页 | 会员中心 | 我要投稿 东莞站长网 (https://www.0769zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

一次Group By+Order By性能优化分析

发布时间:2019-03-21 03:09:41 所属栏目:MySql教程 来源:周梦康
导读:最近通过一个日志表做排行的时候发现特别卡,最后问题得到了解决,梳理一些索引和MySQL执行过程的经验,但是最后还是有5个谜题没解开,希望大家帮忙解答下 主要包含如下知识点 用数据说话证明慢日志的扫描行数到底是如何统计出来的 从 group by 执行原理找

通过gdb调试确认临时表上的字段是aid和num

  1. Breakpoint 1, trace_tmp_table (trace=0x7eff94003088, table=0x7eff94937200) at /root/newdb/mysql-server/sql/sql_tmp_table.cc:2306  
  2. warning: Source file is more recent than executable.  
  3. 2306      trace_tmp.add("row_length",table->s->reclength).  
  4. (gdb) p table->s->reclength  
  5. $1 = 20  
  6. (gdb) p table->s->fields  
  7. $22 = 2  
  8. (gdb) p (*(table->field+0))->field_name  
  9. $3 = 0x7eff94010b0c "aid"  
  10. (gdb) p (*(table->field+1))->field_name  
  11. $4 = 0x7eff94007518 "num"  
  12. (gdb) p (*(table->field+0))->row_pack_length()  
  13. $5 = 4  
  14. (gdb) p (*(table->field+1))->row_pack_length()  
  15. $6 = 15  
  16. (gdb) p (*(table->field+0))->type()  
  17. $7 = MYSQL_TYPE_LONG  
  18. (gdb) p (*(table->field+1))->type()  
  19. $8 = MYSQL_TYPE_NEWDECIMAL  
  20. (gdb)  

通过上面的打印,确认了字段类型,一个aid是MYSQL_TYPE_LONG,占4字节,num是MYSQL_TYPE_NEWDECIMAL,占15字节。

(编辑:东莞站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读