读《面向程序员的数据库访问性能优化法则》

刚刚看了一下2014年中国数据库技术大会(DTCC)PPT,网易杭州研究院的一位同学介绍了一下数据库的优化与调优。

网易的Mysql优化做的很好,而且还写了本书和大家分享这些经验《深入浅出MySQL数据库开发优化与管理维护》。

文章里面大多数写的是我们平常很少想到的硬件方面的优化,还是很深入的。其中提到的《面向程序员的数据库访问性能优化法则》引起了我的关注。一直觉得,程序员应该会写好的SQL,就像应该写好的代码一样。我们读过《Effective C++》等语言类的经典书籍,也可以读一下数据库的优化的文章和书籍,例如:《Effective MySQL 之 SQL语句最优化》。

《面向程序员的数据库访问性能优化法则》从SQL语句,应用到业务上,都给了我们一些建议。其中最核心的应该就是,尽可能减少数据量,减轻延时。例如

  • 写出具体字段 select a , b ,c from xx,还不是用  select * from xx ;

  • 减少连接次数,使用批量提交,或者使用 select xxx where id in ( 1, 2 , 3 )来查询少量的集合数据,而不用 for i in n{ select xxx from t where id = i ;  }

  • 优化业务逻辑,使数据量减到最小;就像我们写for循环的时候,将时间复杂度尽量降低。


文章中讲述的索引让我不得不反思了之前建立索引的方式。以前盲目地以为需要查询的条件都加上索引,系统便会加快。但对于大量数据的CRUD来说,索引增加的额外开销开始变得不容忽视。

索引对于Insert性能降低56%

索引对于Update性能降低47%

索引对于Delete性能降低29%

文中对一些经常使用的字段建立索引给了一些指导性建议,感觉挺实用的。

另外,关于SQL的执行计划和statement绑定变量的描述也让我受益,不知原理,很难做到最优。

关于Mysql的书籍很多,例如:

  • 《Effective+MySQL之SQL语句最优化》

  • 《Mysql_Explain_语法详细解析》

  • 《MySQL性能调优与架构设计》

  • 《高性能MySQL》

读万卷书,行万里路,深入原理后,MySQL才能更好的为我们服务。当然,不管NoSQL如何侵入数据库体系,只要在各自的场景用好,就实现了它们的价值。


转载于:https://my.oschina.net/ifeixiang/blog/363464

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值