为不同的行业提供不同的MYSQL应用场景
吴炳锡老师谈到,不同行业的业务有不同的特点,选择好一个适合自己行业的MYSQL应用场景至关重要。
- 互联网行业
速度一直都是互联网发展的第一要义,互联网行业所使用的数据库特点简要概括就是一个字:快!响应速度快,性能高。
- 金融行业
金融行业更加注重数据的稳定和安全,对于一致性的要求是众多行业中最高的。选择集群,数据库配置里的安全选项以及对事物的控制上都与其他行业有很大区别。
- 传统行业
相比较速度和安全,传统企业更加注重业务的处理,业务完成的整体地位要高于性能。
为不同的企业选择不同的存储引擎
和应用场景相类似,存储引擎也应该按照行业的特点来进行选择。吴炳锡老师就常用的MYSQL存储引擎进行了分析。
- MyISAM
MyISAM是最传统的MYSQL存储引擎,但从MySQL5.5版本以后,官方就开始不进行特别维护了,这个引擎现在基本上已经可以作废了。吴炳锡老师强烈建议还在使用这款存储引擎的同志们尽快弃暗投明,选择新的存储引擎来替代它。
- Innodb
Innodb是现在比较新的引擎,也是吴炳锡老师重点推荐的一款存储引擎。Innodb有两个不同的版本,一个是Innobase,一个是Innodb Plugin。现在用的MYSQL5.5和5.6两个版本的都是基于Innodb Plugin的,性能较之从前提高了两倍以上,是做常规业务的不二之选。
- 其他
另外还有可以提供高速写入功能的TokuDB引擎,在数据库里面做繁杂统计分析工作的Inforbright引擎等等众多存储引擎可供我们选择。
MYSQL优化的“三减一加”
用户集中访问算得上是互联网领域的“高发病”,面对高并发环境,吴炳锡老师提出了:三减一加的政策。减少数据访问、减少网络传输、减少CPU开销和增加资源。
高效索引设计的“军规”
设计高效索引
- 查询,更新,删除where条件中必须有索引,处理行数不能超过1w
- 若查询条件中不包含索引的最左列, 无法使用索引
- 对于范围查询, 只能利用索引的最左列
- 对于order by A语句,在A上建立索引, 可以避免排序
- 对于group by A语句,在A上建立索引, 可以避免排序
- 对于多列排序, 需要所有所有列排序方向一致, 才能利用索引。