V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MySQL 5.5 Community Server
MySQL 5.6 Community Server
Percona Configuration Wizard
XtraBackup 搭建主从复制
Great Sites on MySQL
Percona
MySQL Performance Blog
Severalnines
推荐管理工具
Sequel Pro
phpMyAdmin
推荐书目
MySQL Cookbook
MySQL 相关项目
MariaDB
Drizzle
参考文档
http://mysql-python.sourceforge.net/MySQLdb.html
newbieami
V2EX  ›  MySQL

请教, 一道需要自有发挥的面试题

  •  
  •   newbieami · 2015-03-16 19:46:09 +08:00 · 2196 次点击
    这是一个创建于 3339 天前的主题,其中的信息可能已经有所发展或是发生改变。
    看到网上渣浪有这么道题

    -----------
    假设有一个博客系统,数据库存储采用mysql,用户数量为1000万,预计文章总数为10亿,每天有至少10万的更新量,每天访问量为5000万,对数据库的读写操作的比例超过10:1,你如何设计该系统,以确保其系统高效,稳定的运行?
    提示:可以从数据库设计,系统框架,及网络架构方面进行描述,可以自由发挥
    ----------

    自己没有类似的经验, 根本无法自有发挥, 想请教一下有经验的哥们分享一下自己的经验, 多谢

    刚注册了一个小马甲, 你懂的
    joyeblue
        1
    joyeblue  
       2015-03-16 20:52:54 +08:00   ❤️ 1
    尝试着回答下哈。

    1. 读写比10:1即读多写少,mysql可以做主备,主写,备读,如有必要可做一主多从
    2. 因为是博客系统,具有一定时间的时效性,假定为1个月,则可按月分表
    3. 增加缓存,(memcached或者redis) 大部分数据可以走缓存(包括图片,文章内容,用户信息等)
    4. 网络层 5000万的访问量,即每秒578左右,用一台nginx做代理层即可,并且做到动态页面,和静态页面代理到后端不同机器上,即动静分离
    5. 容灾,针对代理层只有一台nginx,可增加另外一台nginx用keepalived去配置容灾

    做到以上5点,基本可以高效和稳定运行。
    newbieami
        2
    newbieami  
    OP
       2015-03-16 21:34:54 +08:00
    @joyeblue 感谢
    doushini
        3
    doushini  
       2015-03-16 23:16:56 +08:00 via Android
    高并发基本都这套路
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3806 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 04:26 · PVG 12:26 · LAX 21:26 · JFK 00:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.