博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
读《面向程序员的数据库访问性能优化法则》
阅读量:6283 次
发布时间:2019-06-22

本文共 978 字,大约阅读时间需要 3 分钟。

hot3.png

刚刚看了一下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

你可能感兴趣的文章
Python爬虫学习系列教程
查看>>
【数据库优化专题】MySQL视图优化(二)
查看>>
【转载】每个程序员都应该学习使用Python或Ruby
查看>>
PHP高级编程之守护进程,实现优雅重启
查看>>
PHP字符编码转换类3
查看>>
rsync同步服务配置手记
查看>>
http缓存知识
查看>>
Go 时间交并集小工具
查看>>
iOS 多线程总结
查看>>
webpack是如何实现前端模块化的
查看>>
TCP的三次握手四次挥手
查看>>
关于redis的几件小事(六)redis的持久化
查看>>
package.json
查看>>
webpack4+babel7+eslint+editorconfig+react-hot-loader 搭建react开发环境
查看>>
Maven 插件
查看>>
初探Angular6.x---进入用户编辑模块
查看>>
计算机基础知识复习
查看>>
【前端词典】实现 Canvas 下雪背景引发的性能思考
查看>>
大佬是怎么思考设计MySQL优化方案的?
查看>>
<三体> 给岁月以文明, 给时光以生命
查看>>