分库分表
colie_li
coding
展开
-
后语:除了水平切分,数据库架构设计还经常遇到哪些问题
不知不觉,数据库水平切分的系列文章已经走过半年,很感谢朋友们一路的陪伴,也感谢gitchat这个平台,能够把自己曾经实践过的水平切分架构方案,梳理总结和沉淀,系统的记录成文字,和大家一起分享。本文是这个专题的最后一讲,在设定这个专题之初,就已经想好,这一讲的内容了:一部分,总结:特别担心大家没有完整的订阅这一系列文章,无法系统的看到全貌,特地留了一篇总结性质的文章,把1-5篇的知识转载 2017-10-18 20:08:19 · 357 阅读 · 0 评论 -
前言:数据库典型架构实践
本章,将介绍数据库架构设计中的一些基本概念,常见问题以及对应解决方案,为了便于读者理解,将以“用户中心”为例,讲解数据库架构设计的常见玩法。用户中心用户中心是一个非常常见的业务,主要提供用户注册、登录、信息查询与修改的服务,其核心元数据为:User(uid, uname, passwd, sex, age, nickname, …)其中:uid为用户ID,主键。转载 2017-10-18 20:09:42 · 201 阅读 · 0 评论 -
互联网数据库“跨库分页”架构技术实践
一、需求缘起分页需求互联网很多业务都有分页拉取数据的需求,例如:微信消息过多时,拉取第N页消息。京东下单过多时,拉取第N页订单。浏览58同城,查看第N页帖子。这些业务场景对应的消息表,订单表,帖子表分页拉取需求有这样一些特点:有一个业务主键id,例如msg_id,order_id,tiezi_id分页排序是按照非业务主键id来排序的,业务中经常按照时间time来排序or转载 2017-10-18 20:26:12 · 1100 阅读 · 0 评论 -
从订单中心开始,聊“多KEY”类业务数据库水平切分架构实践
不知不觉,水平切分系列文章已经和大家相伴走过半年,介绍了“单key”,“一对多”,“多对多”等不同业务场景下,水平切分的方式方法与最佳实践。本篇讲义将以“订单中心”为例,介绍“多key”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践。一、什么是“多key”类业务所谓的“多key”,是指一条元数据中,有多个属性上存在前台在线查询需求。订单中心业务分析转载 2017-10-18 20:07:26 · 520 阅读 · 0 评论 -
从好友中心开始,聊“多对多”类业务数据库水平切分架构实践
本文将以“好友中心”为例,介绍“多对多”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践。一、什么是多对多关系所谓的“多对多”,来自数据库设计中的“实体-关系”ER模型,用来描述实体之间的关联关系,一个学生可以选修多个课程,一个课程可以被多个学生选修,这里学生与课程时间的关系,就是多对多关系。二、好友中心业务分析好友关系主要分为两类,弱好友关系与强好友转载 2017-10-18 20:01:27 · 391 阅读 · 0 评论 -
从帖子中心开始,聊“1对多”类业务数据库水平切分架构实践
本文将以“帖子中心”为例,介绍“1对多”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践:如何来实施水平切分水平切分后常见的问题典型问题的优化思路及实践一、什么是1对多关系所谓的“1对1”“1对多”“多对多”,来自数据库设计中的“实体-关系”ER模型,用来描述实体时间的映射关系:1对1一个用户只有一个登录名,一个uid对转载 2017-10-18 19:51:17 · 413 阅读 · 0 评论 -
从用户中心开始,聊“单KEY”类业务数据库水平切分架构实践
本文将以“用户中心”为例,介绍“单KEY”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践:如何来实施水平切分。水平切分后常见的问题 。典型问题的优化思路及实践。一、用户中心用户中心是一个非常常见的业务,主要提供用户注册、登录、信息查询与修改的服务,其核心元数据为:User(uid, login_name, passwd,转载 2017-10-18 19:44:06 · 386 阅读 · 0 评论 -
互联网“平滑数据迁移”架构技术实践
一、问题的提出互联网有很多“数据量较大,并发量较大,业务复杂度较高”的业务场景,其典型系统分层架构如下:上游是业务层biz,实现个性化的业务逻辑中游是服务层service,封装相对通用的数据访问下游是数据层db,存储固化的业务数据服务化分层架构的好处是,服务层屏蔽下游数据层的复杂性,例如缓存、分库分表、存储引擎等存储细节不需要向调用方暴露,而只向上游提供方便的RPC访问接口。当转载 2017-10-18 20:30:33 · 1694 阅读 · 0 评论 -
列存储与行存储的区别
写入:行存储的写入是一次完成,数据的完整性因此可以确定。列存储需要把一行记录拆分成单列保存,写入次数明显比行存储多。行存储在写入上占有很大的优势数据修改:行存储是在指定位置写入一次,列存储是将磁盘定位到多个列上分别写入。行存储在数据修改也是占优的数据读取:行存储通常将一行数据完全读出,如果只需要其中几列数据,就会存在冗余列列存储每次读取的数据是集合中的一段或者全部。由于...转载 2019-01-29 16:43:18 · 6293 阅读 · 0 评论