mysq|数据库优化层面
图解优化层面
商业需求:
产品经理+项目经理【参与】
系统架构:
项目经理+系统架构师【介入】
SQL及索引:
【开发阶段】开发人员【关注】
数据库表结构:
开发人员【关注】
系统配置+硬件:
DBA(数据库管理员)+运维【关注】
总结:
越早介入越好!
越往后,成本越高!
商业需求
背景:
做需求的时候,不容易界定【需求是否合理】。
技术人员怎么来证明一个需求是否合理?
每次和产品经理提出新项目的时候,要求他们同时比出该项目的预期收益量化指标,为项目统计评估投入产出比例…
系统架构
【问题1】
数据库最适合存放一些字符串类型的数据
哪些数据不适合在数据库里存放:
二进制多媒体数据(消耗CPU资源)
流水队列数据
超大文本数据
【问题2】
有哪些数据应该放到Cache里:
系统配置数据(变动频率低,访问概率非常高)
用户的基本数据
总结:
变动频率低
比较常用的
访问概率非常高
SQL及索引优化
【开发人员需要重点关注】
应该用JOIN ON,先执行ON后面的条件,把符合条件的拎出来。
数据库表优化
【1】
做到第三范式就差不多了。
适当做一些冗余对查询是有所提升的。
作数据库表设计的时候,看应用系统究竟是OLTP系统还是OLAP系统。
对于OLTP系统:增删改比较多
做一些大数据,查询比较多的,可以适当走一些冗余。
系统配置优化
可以找公司的运维人员,他们用经过长期的,成熟的系统得到的经验,制定并整理了一套配置脚本,可以把脚本拿过研究一下。❤
硬件配置优化
【1】
对系统所有的优化,绝大部分是在IO层面,其次是CPU层面。
IO线程的优劣直接决定性能的高低。
【2】
IO和CPU这两个指标不仅是在数据层面重点考量,在应用层面也要重点考量。
【3】
网络处理能力(IO/CPU/网络)