首页 存档 技术 查看内容

【干货】大数据量下,58同城mysql实践

2018-3-30 13:00 |来自: 互联网 371 0

摘要: 关注后回复"领取",可免费领取软件测试必读的七本电子书和近500M性能测试资料。更多软件测试资料敬请期待更新!!! WOT(World Of Tech)2015,互联网运维与开发者大会将在北京举行,会上58同城将分享《大数据量下 ...

关注后回复"领取",可免费领取软件测试必读的七本电子书和近500M性能测试资料。更多软件测试资料敬请期待更新!!!

WOT(World Of Tech)2015,互联网运维与开发者大会将在北京举行,会上58同城将分享《大数据量下,58同城mysql实战》的主题,干货分享抢先看。

一、基本概念

大数据量下,搞mysql,以下概念需要先达成一致

1)单库,不多说了,就是一个库

2)分片(sharding),水平拆分,用于解决扩展性问题,按天拆分表

3)复制(replication)与分组(group),用于解决可用性问题

4)分片 分组,这是大数据量下,架构的实际情况

二、大数据量下,mysql常见问题及解决思路

1)常见问题

如何保证可用性?

各色各异的读写比,怎么办?

如何做无缝倒库,加字段,扩容?

数据量大,怎么解决?

2)解决思路

2.1)可用性解决思路:复制

读库可用性

从库复制多个,例如:1主2从

从库挂了读主库,例如:1主1从

写库可用性

双主模式

“双主”当“主从”用

2.2)读写比解决思路-针对特性做设计

读多些少场景:提升读性能,3种常见方案:

a)新建索引提高读性能,什么小技巧?

b)读写分离,增加从库扩展读性能

c)增加缓存来扩展读性能

a)b)c)方案存在什么问题?

如何解决这些问题?

读写相近场景:不要使用缓存,考虑水平切分

写多读少场景:不要使用缓存,考虑水平切分

2.3)无缝倒库[扩容,增加字段,数据迁移]

追日志方案

a)记录写日志

b)倒库

c)倒库完毕

d)追日志

e)追日志完毕 数据校验

f)切库

双写方案

a)服务双写

b)倒库

c)倒库完毕 数据校验

d)切库

2.4)数据量大解决思路:拆库

三、数据库拆库实战

四类场景覆盖99%拆库业务

a)“单key”场景,用户库如何拆分: user(uid, XXOO)

b)“1对多”场景,帖子库如何拆分: tiezi(tid, uid, XXOO)

c)“多对多”场景,好友库如何拆分: friend(uid, friend_uid, XXOO)

d)“多key”场景,订单库如何拆分:order(oid, buyer_id, seller_id, XXOO)

1)用户库如何拆分

用户库,10亿数据量

user(uid, uname, passwd, age, sex, create_time);

业务需求如下

a)1%登录请求 =

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部