1.14. 为关键组件减负 特别是数据库访问,数据库成本最高,扩展性最难,可用性保障最难,恢复难度和时间最大 。减负:能不用就不用,使用最简单,成本最低的语句,避免大事务,慎用两阶段事务 。
1.15. 建议灰度数据库 减少发布时变更数据库对全局的影响,只有应用程序灰度是不够的,还要有专门的灰度数据库 。在分库、读写分离架构下,一套含数据库的完整应用架构,变的很自然 。所为灰度环境就是生产环境,生产数据,所影响的也是生产环境,只是范围比测试环境更广,更真实 。其实就是小范围的生产环境 。类似于游戏内测 。
1.16. 建立高仿真架构体系
- 数据库,操作系统升级:应用是否适应,性能会变好,还是变坏
- 应用上线发布,系统变更(列如换平台),提前判断业务影响和性能瓶颈
- 应对突发交易量,例如双十一,性能极限在哪里,瓶颈在哪里 。
1.18. 多中心建设 冗余是基础,多中心建设是为了提升容灾能力和扩展能力,并保障业务 。
1.19. 应用和数据库是一个整体 应用和运维人员一起,解决应用解耦,数据库解耦,追账补数,业务监控,应用路由,故障切换等 。可用性,效率,故障恢复等方面都要一起参与 。
1.20. 性能提升 开源数据库使用应该合理且有效的结合周边的其他类型数据库,做到性能最大化 。比如:redis,MongoDB,ES,ClickHouse等 。
二、总结 最适合的架构是结合软件特性和业务场景,又能取得成本收益平衡 。大数据情况下可以是利用读写分离,分库分表,但要选择合适的 。不适合分库的应该考虑 竭尽所能把核心库做小,然后通过垂直扩展来扩容 。用尽各种技术,高可用 和 容灾手段保证其可用 。
推荐阅读
- MySQL数据库教程-快速理解数据类型
- 用Docker一键快速安装mysql数据库
- Fping - 高性能Ping工具
- 浅谈PHP连接MySQL数据库的三种方式
- mysql5.7使用ProxySQL实现读写分离
- MySQL 安装 MariaDB Audit Plugin 插件,实现审计日志输出
- MySQL使用规范手册,程序员必知必会
- 无语了,直到今天,我才揪出MySQL磁盘消耗迅猛的“真凶”
- IIS+MySQL+PHP+Phpmyadmin配置Web站点之Mysql安装
- Centos7 搭建LTMP环境PHP、Tengine、Mysql、Supervisord、Redis