摘要: 一、需求缘起 几乎所有的业务系统,都有生成一个唯一记录标识的需求,例如: 消息标识:message-id 订单标识:order-id 帖子标识:tiezi-id 消息标识:message-id 订单标识:order-id 帖子标识:tiezi-id 这个记录标识往往就是数据库中的主键,数据库上会建立 阅读全文
posted @ 2017-08-24 14:31 HappyDeveloper 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 事情变得有意思了,上一篇花1小时撰写的“一分钟”文章,又引起了广泛的讨论,说明相关的技术大家感兴趣,挺好。第一次一篇技术文章的评论量过100,才知道原来“评论精选”还有100上限,甚为欣慰(虽然是以一种自己不愿看到的方式)。 《啥,又要为表增加一列属性?》的方案颇有争议: (1)版本号version 阅读全文
posted @ 2017-08-24 14:20 HappyDeveloper 阅读(1846) 评论(0) 推荐(0) 编辑
摘要: 需求缘起 产品第一版:用户有用户名、密码、昵称等三个属性,对应表设计: user(uid, name, passwd, nick) 第二版,产品经理增加了年龄,性别两个属性,表结构可能要变成: user(uid, name, passwd, nick, age, sex) 假设数据量和并发量比较大, 阅读全文
posted @ 2017-08-24 14:18 HappyDeveloper 阅读(513) 评论(0) 推荐(0) 编辑
摘要: 本文主要讨论四个问题: (1)为什么会有冗余表的需求 (2)如何实现冗余表 (3)正反冗余表谁先执行 (4)冗余表如何保证数据的一致性 一、需求缘起 互联网很多业务场景的数据量很大,此时数据库架构要进行水平切分,水平切分会有一个patition key,通过patition key的查询能够直接定位 阅读全文
posted @ 2017-08-24 13:37 HappyDeveloper 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 本文主要讨论这么几个问题: (1)“缓存与数据库”需求缘起 (2)“淘汰缓存”还是“更新缓存” (3)缓存和数据库的操作时序 (4)缓存和数据库架构简析 一、需求缘起 场景介绍 缓存是一种提高系统读性能的常见技术,对于读多写少的应用场景,我们经常使用缓存来进行优化。 例如对于用户的余额信息表acco 阅读全文
posted @ 2017-08-24 11:43 HappyDeveloper 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 本文主要讨论这么几个问题: (1)啥时候数据库和缓存中的数据会不一致 (2)不一致优化思路 (3)如何保证数据库与缓存的一致性 一、需求缘起 上一篇《缓存架构设计细节二三事》(点击查看)引起了广泛的讨论,其中有一个结论:当数据发生变化时,“先淘汰缓存,再修改数据库”这个点是大家讨论的最多的。 上篇文 阅读全文
posted @ 2017-08-24 11:39 HappyDeveloper 阅读(337) 评论(0) 推荐(0) 编辑
摘要: 对于一些数据量较大的系统,数据库面临的问题除了查询效率低下,还有就是数据入库时间长。特别像报表系统,可能每天花费在数据导入上的时间就会长达几个小时之久。因此,优化数据库插入性能是很有意义的。网络上的牛人很多,总会有一些手段可以提高insert效率,大家跟我一起分享一下吧: 1. 一条SQL语句插入多 阅读全文
posted @ 2017-08-24 11:13 HappyDeveloper 阅读(599) 评论(0) 推荐(0) 编辑