当前位置:龙图IT服务 > 数据库 >

奠定MYSQL江湖地位的开发注意事项

作者:mysql数据库优化 发布时间:2016-04-18 阅读: 转至微博:

MYSQL对于大多数IT从业者来说并不是一个陌生的词汇,早在十几年前随着互联网SNS的兴起,MySQL数据库就开始引领风骚,直至今日,它依旧是市场占有率最高的关系数据库。
随着不断地发展壮大,业界开始越来越重视MYSQL数据库,现在看来不只是互联网企业在用MYSQL数据库,金融企业也在用MYSQL数据库,一些传统企业也加入了mysql数据库优化使用的阵营中,基本上所有数据库的相关场景里都能看到MYSQL的影子。
mysql数据库优化
那么问题来了,究竟是什么原因使得MYSQL的出镜率如此之高?关于这个问题,WOT2016互联网运维与开发者峰会特邀讲师、知数堂培训创始人吴炳锡将基于MYSQL开发注意事项的角度来为我们进行讲解。
随着MYSQL不断地发展壮大,业界开始越来越重视MYSQL数据库,现在看来不只是互联网企业在用MYSQL数据库,金融企业也在用MYSQL数据库,一些传统企业也加入了MYSQL数据库使用的阵营中,基本上所有数据库的相关场景里都能看到MYSQL的影子。 那么问题来了,究竟是什么原因使得MYSQL的出镜率如此之高?关于真个问题,WOT2016互联网运维与开发者峰会特邀讲师、知数堂培训创始人吴炳锡将基于MYSQL开发注意事项的角度来为我们进行讲解。
吴炳锡,知数堂培训创始人,中国CMUG核心组织者,10年+专职MySQL DBA,熟悉MySQL高可用方案与多机房架构设计及运维,拥有丰富的自动化平台开发及实践经验。
为不同的行业提供不同的MYSQL应用场景
吴炳锡老师谈到,不同行业的业务有不同的特点,选择好一个适合自己行业的MYSQL应用场景至关重要。
·互联网行业
速度一直都是互联网发展的第一要义,互联网行业所使用的数据库特点简要概括就是一个字:快!响应速度快,性能高。
·金融行业
金融行业更加注重数据的稳定和安全,对于一致性的要求是众多行业中最高的。选择集群,数据库配置里的安全选项以及对事物的控制上都与其他行业有很大区别。
·传统行业
相比较速度和安全,传统企业更加注重业务的处理,业务完成的整体地位要高于性能。
 
为不同的企业选择不同的存储引擎
和应用场景相类似,存储引擎也应该按照行业的特点来进行选择。吴炳锡老师就常用的MYSQL存储引擎进行了分析。
·MyISAM
MyISAM是最传统的MYSQL存储引擎,但从MySQL5.5版本以后,官方就开始不进行特别维护了,这个引擎现在基本上已经可以作废了。吴炳锡老师强烈建议还在使用这款存储引擎的同志们尽快弃暗投明,选择新的存储引擎来替代它。
·Innodb
Innodb是现在比较新的引擎,也是吴炳锡老师重点推荐的一款存储引擎。Innodb有两个不同的版本,一个是Innobase,一个是Innodb Plugin。现在用的MYSQL5.5和5.6两个版本的都是基于Innodb Plugin的,性能较之从前提高了两倍以上,是做常规业务的不二之选。
·其他
另外还有可以提供高速写入功能的TokuDB引擎,在数据库里面做繁杂统计分析工作的Inforbright引擎等等众多存储引擎可供我们选择。
MYSQL优化的“三减一加”
WOT吴炳锡:奠定MYSQL江湖地位的开发注意要点
用户集中访问算得上是互联网领域的“高发病”,面对高并发环境,吴炳锡老师提出了:三减一加的政策。减少数据访问、减少网络传输、减少CPU开销和增加资源。
高效索引设计的“军规”
随着MYSQL不断地发展壮大,业界开始越来越重视MYSQL数据库,现在看来不只是互联网企业在用MYSQL数据库,金融企业也在用MYSQL数据库,一些传统企业也加入了MYSQL数据库使用的阵营中,基本上所有数据库的相关场景里都能看到MYSQL的影子。 那么问题来了,究竟是什么原因使得MYSQL的出镜率如此之高?关于真个问题,WOT2016互联网运维与开发者峰会特邀讲师、知数堂培训创始人吴炳锡将基于MYSQL开发注意事项的角度来为我们进行讲解。
设计高效索引
·查询,更新,删除where条件中必须有索引,处理行数不能超过1w
·若查询条件中不包含索引的最左列, 无法使用索引
·对于范围查询, 只能利用索引的最左列
·对于order by A语句,在A上建立索引, 可以避免排序
·对于group by A语句,在A上建立索引, 可以避免排序
·对于多列排序, 需要所有所有列排序方向一致, 才能利用索引。
写在最后
吴炳锡老师表示MySQL现在在业界内出现了很多的分支,有官方版本还有一些其他版本,每一个版本都有其独到之处,作为一名资深的MYSQL传教士,他希望将来的业界能够用更开放的心态将所有新的特性合并到一起,让每一个下一版本变得更加优秀,让更多人从中受益!

关键词: MySQL数据库优化