mercury

882 views
763 views

Published on

水银数据库架构

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
882
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
10
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

mercury

  1. 1. 毒霸云查杀数据库架构和 MySQL优化实践 温铭 http://s8.hk/kr^_^
  2. 2. 互联网软件的特点 • 糙  开发维护流程不规范  代码可维护性差  轻测试,bug多 • 快  需求变化快  迭代速度快  用户反馈快 • 猛  海量用户  海量数据  新技术 • 精  运营比开发重要
  3. 3. 数据的价值 • 人才? • 数据?
  4. 4. 水银是什么 • 毒霸云安全 有对水银一代和云安全比较全 面的介绍 • 毒霸十年反病毒经验的总结 • 安全数据的收集、处理、分析、总结和应 用的平台 • 毒霸从客户端向互联网转型的急先锋
  5. 5. 水银数据库 • 数据库技术架构的变迁代表了水银技术架 构的变迁 • 历次系统的瓶颈和阵痛 • 系统性能和功能的飞跃
  6. 6. (零)结合应用 • CAP  一致性(Consistency)  可用性(Availability)  分区容忍性(Partition tolerance) • BASE  基本可用(Basically Available)  软状态(Soft state)  最终一致(Eventually consistent)  取代ACID? eBay的选择 • 好架构是用的时候磨合修改出来的;不可能一劳永逸 • 教育或者被忽悠 • 逻辑尽可能前移
  7. 7. (壹)了解数据 • 数据库架构的第一步 • 你需要知道: 数据的含义 数据的预计规模和增长速度 数据的使用频率 数据的生命周期 数据是实时的,还是可以cache,多久失效 …… • 制定缓存和归档机制 缓存为王
  8. 8. 水银:开发就是DBA • 开发DBA、运维DBA…..从来就没有过DBA • 表的设计、字段和索引都是开发人员发起, 邮件或者群里吼。由兼职DBA简单审查就能 上线 • 好处:最了解应用和数据;快速实现 • 坏处:数据库慢查询;应用和数据库整体 架构不统一;不便管理
  9. 9. (贰)备份 • 数据库一定会崩溃 • 备份比优化更重要 • Master-slave • InnoDB Hot Backup • innobackupex • SAN • LVM • ZFS • 锁表、停机
  10. 10. 水银:备份重要也紧急 • Master-slave • 多重备份 • 备份救过命 • 顺便分担读压力 • 不完善,不系统 • 没有应急方案和崩溃演习
  11. 11. (叁)表和索引的设计 • 开始数据库的第一步 • 表和索引设计是数据库优化的一大半 • 了解会有哪些操作、各占比例以及消耗 • explain 和 profiling
  12. 12. 水银:索引 • 不用索引
  13. 13. 水银:索引(续) • 滥用索引 • 还不如没有索引
  14. 14. 水银:数据库参数配置 • MyISAM vs InnoDB • My.cnf的参数调整 • MySQL优化基础 • 网络环境和硬件都会对参数的调整有很大 影响
  15. 15. (肆)海量数据 • 多少算海量?TB、PB、billion • 还是要先了解应用和数据 • 关注慢查询 • 找出瓶颈在哪儿 • NODB:应用、网络、OS、主机、存储 • scale up 和 scale out
  16. 16. 水银: scale up • OS:32bit 64bit • Disk:Sata SASSAS RAID10HP MSA2000i (iSCSI)EMC(FC) • memory:4G8G12G • MySQL:5.05.1 • 全部使用InnoDB • 参数调整
  17. 17. 水银: scale out • 数据库按照功能拆分 • 使用Django的多数据库控制,无痛拆分 • 数据归档 • 数据生命周期
  18. 18. (伍)高可用性 • 硬件冗余:RAID、电源、主机、交换机… • SAN + Heartbeat • DRDB + Heartbeat • Master-slave • Master-slave 半同步(MySQL5.5支持) • Master-master
  19. 19. 水银:没有HA • 内外网都没有 • 我们的服务要求是几个九的可靠性? • 代价和成本(参考这里)
  20. 20. Q&A

×