互联网数据库运维实践和趋势.pdf

互联网数据库运维实践和趋势 杨尚刚 zolker 个人简介 Ø 2011年加入新浪 Ø 负责新浪微博核心数据库架构设计 Ø 负责新浪数据库平台底层软硬件平台优化 Ø 2015年加入美图网 Ø 理念:设计简洁的架构 数据库排名 如何选择数据库 Ø应用场景 Ø数据量 Ø可用性要求 Ø数据安全性要求 Ø运维复杂度 数据库对比 数据库 优点 缺点 场景 MySQL 结构简单,部署方便,社区成熟,稳定性非常好, 扩展性差,软件本身性能瓶颈大, 百亿以内的数据存储,对数据安全 良好的事务和SQL支持 没有成熟的集群方案,schema限 性和事务支持有要求 制 MongoDB Schema -free,快速开发,本身支持集群和 锁的粒度大,并发性能差,性能受 LBS,缓存,小文件存储 sharding,支持空间索引 限于内存,解决方案上有待考验 HBase 类Bigtable系统,基于Hadoop生态系统,良好的 架构复杂,运维成本高 搜索,数据写入非常高,监控数据 扩展性,高写入能力, 数据自动分片 Redis 高性能,部署简单,丰富的数据类型支持,支持 性能受限于内存,单进程问题 适合小数据高读写场景 数据持久化,集群方案支持 新浪微博的选择 MySQL当前存在问题 Ø优化器对复杂SQL支持不好 Ø对SQL标准支持不好 Ø大规模集群方案不成熟,主要指中间件 Ø逻辑复制 ØOnline DDL ØHA方案不完善 Ø备份和恢复方案还是比较复杂,需要依赖外部组件 Ø展现给用户信息过少 Ø众多分支 PostgreSQL VS MySQL? MySQL优势 Ø 扩展性 Ø 可维护性好 Ø 良好的生态环境 Ø 性能并不差 DBALife Ø满足各种各样的开发需求 Ø各式各样的Schema审核 ØSQL优化 Ø各种救火和处理报警 主库故障,缓存“雪崩” Ø各种业务和项目上线 Ø业务沟通 解放DBA的双手 Ø制定运维规范 Ø流程自动化 Ø减少沟通成本 规范化 Ø部署规范 Ø软件规范 Ø业务开发规范 Ø日常运维规范 软件规范 Ø操作系统 ØMySQL版本 Ø相关工具版本 我的建议 MySQL社区版 Percona Server MariaDBMySQL 企业版 业务开发规范 Ø数据库开发规范: 开发规范是针对内部开发的一系列建议或规则 由DBA制定,如果有DBA的话 开发规范也包含几部分:基本命名和约束规范,字段设计规 范,索引规范,使用规范 Ø意义: 保证线上数据库schema规范 减少出问题概率 方便自动化管理 需要长期坚持,是一个双赢的事情 开发规范示例 Ø表字符集选择UTF8 ,如果需要存储emoj表情,需要使用 UTF8mb4(MySQL 5.5.3以后支持) Ø存储引擎使用InnoDB Ø变长字符串尽量使用varchar 和varbinary Ø不在数据库

文档评论(0)

1亿VIP精品文档

相关文档