Archive

Archive for the ‘mysql’ Category

复杂关联SQL的优化

September 16th, 2014 Comments off

昨天处理了一则复杂关联SQL的优化,这类SQL的优化往往考虑以下四点:

第一.查询所返回的结果集,通常查询返回的结果集很少,是有信心进行优化的;

第二.驱动表的选择至关重要,通过查看执行计划,可以看到优化器选择的驱动表,从执行计划中的rows可以大致反映出问题的所在;

第三.理清各表之[……]

Read more

Categories: mysql, sql优化 Tags:

巧用query cache

October 5th, 2013 Comments off

收到一用户反馈其应用日志中狂报错误,获取连接超时:

同时应用报错超出了数据库的最大连接数:max connections:

这种情况很有可能是有慢sql占用了连接池中的连接没有释放,导致后续进来的请求迟迟获取不到连接池中的连接,导致请求报错,登录数据库排查发现如下sql出现执行非常的慢:[……]

Read more

Categories: database, mysql, RDS Tags:

化繁为简-优化sql

March 29th, 2013 Comments off

下面的一段对话取自于和用户的一段旺旺聊天记录,在征得用户的同意后,放到我的blog中,希望更多的人能够看见,分享是一件快乐的事情;同时也想借此来说明一些问题,有时候试图用一条sql完成所有的业务逻辑可能会遇到麻烦,需要对复杂的sql进行一些拆分,可能会得到更好的效果,好吧,废话少说,进入正题:[……]

Read more

Categories: database, mysql, RDS, sql优化 Tags:

RDS MySql支持online ddl

March 29th, 2013 No comments

在日常和客户沟通的过程中发现,他们在做mysql ddl变更的时候由于MySql本身的缺陷不支持online ddl,导致他们的业务不得不hang住一会儿,表越大,时间影响越长,所以期待有更好的解决方法;有些用户也想了一些方法,比如通过主备切换的方法,先在备库进行ddl,然后在通过主备切换到原主库进[……]

Read more

Categories: database, mysql, RDS Tags:

SQL优化的一些总结

August 6th, 2012 No comments

SQL的优化是DBA日常工作中不可缺少的一部分,记得在学生时期,曾经在ITPUB上看到一篇帖子,当时楼主在介绍SQL优化的时候,用一个公式来讲解他在做sql优化的时候遵循的原则:

          T=S/V(T代表时间,S代表路程,V代表速度)

S指SQL所需访问的资源总量,V指SQL单位时[……]

Read more

Categories: database, mysql, sql优化 Tags:

内建的builtin InnoDB,子查询阻塞更新

May 6th, 2012 No comments

奇龙在做db变更的时候,update被阻塞:

root@127.0.0.1 : (none) 23:51:35> show variables like ‘%ignore_builtin%’;

| Variable_name | Value |

| ignore_bu[……]

Read more

Categories: database, mysql Tags:

mysql中的Waiting for tables

October 21st, 2011 No comments

接着上篇中遇到的mysql子查询,在问题的诊断中,丹臣注意到一个较为严重的问题,就是我们生产库中全部的数据库访问请求都处于Waiting for tables的状态,在将大查询kill掉后,所有的请求恢复正常;简单的理解为大查询阻塞了其他访问请求,但是这个理论是不可信,如果阻塞该表的DML还可以理解[……]

Read more

Categories: mysql Tags:

mysql批量提交的优化

July 28th, 2011 No comments

.背景

用户修改布局时,需要批量更新mysql的xxxx_layout_xxxx表。批量操作的数据量是2-30条/次。批量操作是这次项目在技术上比较关键的一个点,之前批量操作做过性能上的测试,mysql端问题不大,7000+tps,Java端的效率有些差,有优化空间。

对批量的性能进行了[……]

Read more

Categories: database, jdbc, mysql Tags:

STRAIGHT_JOIN has no effect on query with subquery in FROM clause

July 26th, 2011 No comments

上周的mysql官网上提交了一个bug,原因为在我们的一个分页sql中出现了全表扫描的情况,这对于我们来说是不可接受的:

UTF8_EXCERPT_HAS_M[……]

Read more

Categories: mysql, sql优化 Tags:

mysql的压缩特性-需求

June 22nd, 2011 No comments

需求:最近有个插入量比较大的应用需要上,每天的插入量在1亿左右,同时会有较少的查询,表的单行长度在0.5k,就数据而言每天有近50G数据,由于每天写一张新表,保留30天的数据,一个月下来也要1.5T,所以考虑了mysql采用mysql innodb plugin的压缩存储,在官方文档中这样描述了my[……]

Read more

Categories: mysql Tags: