`

微博 请问你是怎么优化数据库的?

 
阅读更多

【51CTO综合报道】围脖,织围脖——这是什么?冬天到了,织条围脖保暖吗?错,这是网络流行用语。这还是大家的生活方式,生活态度。“找我?来我微博啊!”最近身边的朋友都在织啊织,你不织?你就是“奥特曼”。那么大家是否知道微博的开发 模式吗?数据库是如何部署的?又是如何优化的?这些问题一出,必要找达人为我们解惑。51CTO有幸请到新浪首席DBA杨海潮先生来为我们解一解上述的疑惑。

专访人物介绍

杨海潮,新浪首席DBA,在大规模高并发,海量访问有丰富的管理经验。热衷于数据库设计,性能优化,分布式部署方案和高可用性方面的研究。

之前从事大访问量网站的部署以及优化工作,加入新浪后主要负责整个公司的数据库管理工作。

 


51CTO:新浪现在的开发模式还是 LAMP 吗?

杨海潮:目前大部分业务还是使用LAMP方式,也有部分采用LNMP方式。

51CTO:新浪数据库是如何 部署 的?

杨海潮:目前NoSQL和MySQL是结合使用的,根据应用的特点选择合适存储方式。
 
51CTO: Sharding策略 是很好的数据库扩展方案,但是这种方案也不是万能的,新浪是如何选取sharding的形式,来适应不同的应用场景?

杨海潮:如图:

 

sharding只用于数据量大同时有性能瓶颈的库,大部分库不进行sharding处理。

对于数据量比较大的库,在一开始就考虑sharding策略,例如索引数据和内容数据分开设计,每类数据库根据业务逻辑选择恰当的partitioning key,拆分成一定数量的表。

然后随着压力的增加进行垂直拆分,垂直拆分后的库再遇到性能瓶颈时首先考虑用硬件来解决。

当硬件解决不了时才开始考虑水平拆分。

在选择sharding方案时仔细考虑业务逻辑。对于读密集型应用,基本上通过增加slave来解决,对于写密集型应用才进行垂直和水平拆分工作。
 
51CTO:跨越越多的sharding,带来的开销就越大,这个数量是如何控制的?

杨海潮:目前我在设计之前就避免跨表操作,选择适当的paritioning key ,也即合适的拆分维度,避免对后期业务的影响。

根据业务逻辑的重要程度,如果业务逻辑是查询某一个用户的信息,那么会按用户进行拆分,那么保证一个用户的数据是落在一张表里面。按时间维度进行拆分,那么会分析数据的冷热程度,把80%以上的数据放在一个表,避免过多的跨表查询。

在这种拆分维度满足不了业务需求时,我们会利用空间换时间的思想,同一份数据按多种维度进行拆分,让每种业务逻辑的查询语句都有很高的效率。

51CTO:很多用户都会把sharding和partitioning混淆,您能讲讲您是怎么区分sharding与partitioning的异同。

杨海潮:sharding通常是指垂直拆分和水平拆分,是一个总体的概念,mysql的partitioning是实现sharding的一种技术。
 
51CTO:新浪现在采用SQL+NoSQL结合的数据库部署,那么对于两种数据库,分别是如何进行优化的呢?

杨海潮:目前NoSQL和MySQL是结合使用的,根据应用的特点选择合适存储方式。譬如:关系型数据,例如:索引使用MySQL存储,非关系数据 库,例如:一些K/V需求的,对并发要求比较高的放入NoSQL产品存储,或者通过关系数据复制到NoSQL(redis)来显示不同的应用需求。

针对MySQL做的优化 比较多,从硬件(使用SSD,Fusion-IO,Cachecade等),文件系统(尝试XFS),调整IO调度,优化参数,调整索引到减少应用对数据库的访问和交换等。

NoSQL(redis)通过修改源码满足自己的业务需求:完善它的replication机制,加入position的概念,让维护更容易,同时failover能力也大大增强。改善Hashset在rdb里面的存储方式,提升复杂数据类型的加载速度。

 

51CTO:如何保证数据库的安全性的呢?

杨海潮:主要通过几个方面进行考虑:

  1. 只通过内网进行访问。
  2. 对来源IP做限制。
  3. 使用一定复杂度的密码策略。
  4. 从程序的角度对于输入进行检查,例如使用绑定变量防止SQL注入。
  5. 对一些敏感的信息会记录上操作日志,定期以报表的形式发给相关人员。
分享到:
评论

相关推荐

    微博数据库设计

    3.2 关系优化 14 3.3 约束的说明 14 4 数据库物理设计 14 4.1 确定数据库的存储结构 14 4.2 确定数据库的存取方法 15 5 数据库应用设计 15 5.1 数据库脚本 15 5.2 数据库完整性设计 15 5.3 数据库安全性设计 15 5.4 ...

    MySQL数据库设计、优化.pptx

    MySQL数据库设计、优化 叶金荣 微博: @yejinrong 微信公众号: MySQL中文网 QQ群: 125572178、272675472 2013.08.20 MySQL数据库设计、优化全文共24页,当前为第1页。 提纲 规范 基础规范 命名规范 库表规范 字段...

    javaweb微博论坛源码(项目+数据库)

    优化文章浏览量的统计; 优化图片上传的后缀检查逻辑; 优化管理页面中各种数据在移动设备上面的体验; 调整安装完成后默认生成文章的文案; 调整部分圆角的问题; 默认主题部分细节优化。 修复: 修改editormd流程...

    535303 数据库索引设计与优化

    535303 数据库索引设计与优化 本人是一个IT开发爱好者,从事Android的开发工作。热爱学习新技术。 * 若您也有共同的兴趣爱好,欢迎你加入QQ技术群让我们共同发现新技术。 【GitHub】https://github.com/xiaole0310 ...

    微博数据采集工具Weisper v1.0

    微博采集工具Weisper 是帮助用户采集微博、粉丝信息的工具。工具能模拟人的操作,把网站上显示的信息采集到工具中。采集的信息包括含有关键字的微博,还能采集微博账号的所有微博、粉丝信息、微博评论、微博转发等。...

    小清微博(原百度收藏夹) v3.1.zip

    2、3.1数据库只增加了表[S_set],用于记录系统设置,可直接复制新版本里的表[S_set]到你的旧数据库里。 3、运行前,请先修改Main/inc/config.asp里面的数据库连接地址,否则会出错。 4、增加了管理后台,地址/...

    EasyTalk开源微博系统 X2.5.zip

    EasyTalk是国内首款多用户PHP Mysql开源微博客系统,支持网页、手机Wap、手机短信、QQ、Gtalk、飞信等多种方式发表或接收信息,EasyTalk全面... 设置敏感词过滤,加强微博内容管理,同时可以对数据库进行备份优化等。

    基于PHP的简易微博系统

    后台采用Mysql开发和管理数据库。开发环境为Apache服务器。 经过需求分析、概要设计、详细设计、实现和测试等阶段的不断完善,最终实现了用户体验良好、界面设计美观、功能完善的个人博客系统。该系统会实现用户对...

    基于Android系统的手机微博--服务器端

    基于Android系统的手机微博的后台部分,使用SSH框架开发,基于Mysql数据库和Tomcat容器。没有进行优化,访问速度有点慢,主要为了配合Android端软件所开发的简单的功能实现。

    免费送你项目资料啦:基于ssm的仿微博项目(免费提供源码)

    1. 项目背景: 起源与背景: 仿微博项目源于对当下社交网络平台的关注和分析。...性能优化: 通过合理的数据库设计、缓存机制等手段,提升系统的响应速度和稳定性。 安全性: 采用安全加密算法保护用户信息的安全

    记事狗微博程序V1.5.0

    32、后台可备份、恢复和优化数据库; 33、后台可一键查看网站的Alexa排名、搜索引擎收录和反向链接等; 34、后台可禁止前台IP访问或者设置后台的IP访问; 35、集成Ucenter模块,可与集成该模块的系统(比如爱聚合、...

    记事狗微博系统 v4.0.4 Build20130510 GBK

    整个V3.5版本从数据库结构、代码规范完善、系统负载性能、后台安全管理、信息导航架构、注册认证体系、内容审核管理、用户关系挖掘、多客户端接入、应用功能扩展等十多个方面做了全面改进提高! 记事狗微博 V4.0.4 ...

    记事狗微博系统 v4.0.4 Build20130510 UTF8

    整个V3.5版本从数据库结构、代码规范完善、系统负载性能、后台安全管理、信息导航架构、注册认证体系、内容审核管理、用户关系挖掘、多客户端接入、应用功能扩展等十多个方面做了全面改进提高! 记事狗微博 V4.0.4 ...

    html+css+js 简易微博系统.zip

    利用html+css+js作为前端语言和php作为后台语言,采用前端与后台分离的设计方式,主要实现新用户注册,用户登录,发微博(包括文字,表情,音乐,视频),评论微博,转发微博,关注用户,私信等功能。 PHP(全称:...

    Xweibo v2.1 Beta,新浪开源微博系统源码.zip

    Xweibo v2.1 beta版具有Xweibo v2.0 正式版拥有新浪微博的核心功能,具备微博发布、浏览、转发、评论、收藏、话题、黑名单等核心功能以外,还满足更多运营需求:数据本地备份、设置网站粉丝/关注关系从零开始或继续...

    百度收藏夹(ASP仿腾讯微博) v2.9.rar

    7、优化主页SQL读取速度,由22次读取数据库,改为16次读取。加快浏览速度。 8、利用分享功能,增加在线即时留言功能。大家可以试一下 http://www.mlmzj.com/,签写在线留言之后,会自动给我发私信。该功能正在扩展...

    百度收藏夹(ASP仿腾讯微博) v2.9

    7、优化主页SQL读取速度,由22次读取数据库,改为16次读取。加快浏览速度。 8、利用分享功能,增加在线即时留言功能,签写在线留言之后,会自动给我发私信。该功能正在扩展,看能不能做成游客和站长即时对话。理论...

    记事狗微博系统最新官方版

    整个V3.5版本从数据库结构、代码规范完善、系统负载性能、后台安全管理、信息导航架构、注册认证体系、内容审核管理、用户关系挖掘、多客户端接入、应用功能扩展等十多个方面做了全面改进提高! 更新说明: 记事狗...

    梦想之家asp多用户微博系统

    梦想之家-你的快乐之家 asp多用户微博系统 本程序为免费大家提供,请大家及时关注官网的最近功能. 梦想之家是一套全新的互动社区系统,其每个话题内容允许达到500个字(微博). 即减轻了发帖人的压力,又节省了看帖人...

    基于php的校园微博系统-论文.zip

    高可靠性:MySQL是一种成熟的关系型数据库管理系统,凭借其稳定性和可靠性得到了广泛的应用。它提供了强大的数据冗余、事务支持和备份恢复功能,确保数据的安全性和完整性。通过使用MySQL作为存储引擎,该项目能够...

Global site tag (gtag.js) - Google Analytics