HelloWorld搬运工

HelloWorld搬运工

MongoDB的正确使用姿势

MongoDB是一个非常有前途的数据库,MongoDB官方对自己的定位是通用数据库,其实这个定位跟MySQL有些像。虽其流行度还远未达到MySQL的水平,但笔者有个可能不恰当的比较,MongoDB就像N年前的MySQL,随着时间的推移,会变得越来越强大,也会越来越流行。下面结合MongoDB的几大...

2018-08-03 12:34:18

阅读数:33

评论数:0

MySQL数据库的几个优化建议

性能是我们衡量应用的一种方式,而应用性能的一项指标就是用户体验,也就是平时我们常说的:“用户需要等待超过合理的时间,才能获得他们想要的东西吗?”在不同的情况和场景下,该指标会有所不同。比如说:对于移动购物应用来说,其响应时间不能超过几秒钟;而对于一个员工的人力资源页面而言,其响应时间则允许比几秒钟...

2018-04-18 21:57:27

阅读数:142

评论数:0

常用SQL优化方法

1、应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。3、应尽量避免在 where 子句中对字段进行 n...

2018-04-10 07:55:09

阅读数:111

评论数:0

CAS下ABA问题及优化方案

一、并发业务场景库存业务,stock(sid, num),其中:sid为库存idnum为库存值如上图所示,两个并发的查询库存操作,同时从数据库都得到了库存是5。 接下来用户发生了并发的库存扣减动作:如上图所示:用户1购买了3个库存,于是库存要设置为2用户2购买了2个库存,于是库存要设置为3这两个设...

2017-12-13 21:47:03

阅读数:396

评论数:0

浅谈CAS在分布式ID生成方案上的应用

所谓“分布式ID生成方案”,是指在分布式环境下,生成全局唯一ID的方法。 可以利用DB自增键(auto inc id)来生成全局唯一ID,插入一条记录,生成一个ID:这个方案利用了数据库的单点特性,其优点为:无需写额外代码全局唯一绝对递增递增ID的步长确定 其不足为:需要做数据库HA,保证生成ID...

2017-12-13 21:43:10

阅读数:44

评论数:0

库存扣多了,到底怎么整

业务复杂、数据量大、并发量大的业务场景下,典型的互联网架构,一般会分为这么几层:调用层,一般是处于端上的browser或者APP站点层,一般是拼装html或者json返回的web-server层服务层,一般是提供RPC调用接口的service层数据层,提供固化数据存储的db 对于库存业务,一般有个...

2017-12-13 21:37:33

阅读数:633

评论数:0

用uid分库,uname上的查询怎么办

【缘起】用户中心是几乎每一个公司必备的基础服务,用户注册、登录、信息查询与修改都离不开用户中心。 当数据量越来越大时,需要多用户中心进行水平切分。最常见的水平切分方式,按照uid取模分库:通过uid取模,将数据分布到多个数据库实例上去,提高服务实例个数,降低单库数据量,以达到扩容的目的。 水平切分...

2017-12-10 11:13:39

阅读数:151

评论数:0

100亿数据平滑数据迁移,不影响服务

一、问题的提出互联网有很多“数据量较大,并发量较大,业务复杂度较高”的业务场景,其典型系统分层架构如下:(1)上游是业务层biz,实现个性化的业务逻辑(2)中游是服务层service,封装数据访问(3)下游是数据层db,存储固化的业务数据 服务化分层架构的好处是,服务层屏蔽下游数据层的复杂性,例如...

2017-12-10 11:11:04

阅读数:97

评论数:0

“跨库分页”的四种方案

一、需求缘起分页需求互联网很多业务都有分页拉取数据的需求,例如:(1)微信消息过多时,拉取第N页消息(2)京东下单过多时,拉取第N页订单(3)浏览58同城,查看第N页帖子 这些业务场景对应的消息表,订单表,帖子表分页拉取需求有这样一些特点:(1)有一个业务主键id, 例如msg_id, order...

2017-12-10 11:02:28

阅读数:87

评论数:0

58到家数据库30条军规解读

军规适用场景:并发量大、数据量大的互联网业务军规:介绍内容解读:讲解原因,解读比军规更重要 一、基础规范(1)必须使用InnoDB存储引擎解读:支持事务、行级锁、并发性能更好、CPU及内存缓存页优化使得资源利用率更高 (2)必须使用UTF8字符集解读:万国码,无需转码,无乱码风险,节省空间 (3)...

2017-12-07 21:41:03

阅读数:180

评论数:0

典型数据库架构设计与实践

本文,将介绍数据库架构设计中的一些基本概念,常见问题以及对应解决方案,为了便于读者理解,将以“用户中心”数据库为例,讲解数据库架构设计的常见玩法。 一、用户中心用户中心是一个常见业务,主要提供用户注册、登录、信息查询与修改的服务,其核心元数据为:User(uid, uname, passwd, s...

2017-12-06 21:28:48

阅读数:95

评论数:0

单KEY业务,数据库水平切分架构实践

本文将以“用户中心”为例,介绍“单KEY”类业务,随着数据量的逐步增大,数据库性能显著降低,数据库水平切分相关的架构实践:如何来实施水平切分水平切分后常见的问题典型问题的优化思路及实践 一、用户中心用户中心是一个非常常见的业务,主要提供用户注册、登录、信息查询与修改的服务,其核心元数据为:User...

2017-12-06 21:18:24

阅读数:68

评论数:0

巧用CAS解决数据一致性问题

缘起:在高并发的分布式环境下,对于数据的查询与修改容易引发一致性问题,本文将分享一种非常简单但有效的优化方法。一、业务场景业务场景为,购买商品的过程要对余额进行查询与修改,大致的业务流程如下:(1)从数据库查询用户现有余额 SELECT money FROM t_yue WHERE uid=$ui...

2017-12-03 22:06:29

阅读数:63

评论数:0

数据库秒级平滑扩容架构方案

一、缘起 (1)并发量大,流量大的互联网架构,一般来说,数据库上层都有一个服务层,服务层记录了“业务库名”与“数据库实例”的映射关系,通过数据库连接池向数据库路由sql语句以执行: 如上图:服务层配置用户库user对应的数据库实例物理位置为ip(其实是一个内网域名)。   (2)随着...

2017-11-23 21:55:05

阅读数:92

评论数:0

一分钟掌握数据库垂直拆分

一、缘起 当数据库的数据量非常大时,水平切分和垂直拆分是两种常见的降低数据库大小,提升性能的方法。假设有用户表: user( uid bigint, name varchar(16), pass varchar(16), age int, sex tinyint, flag tin...

2017-11-23 21:31:42

阅读数:297

评论数:0

即使删了全库,保证半小时恢复

【高可用数据库架构】 一般来说数据库集群会是主从架构: 或者主主架构:   如果此时主库宕机,可以: (1)一个从库顶上,重建集群 (2)流量迁移到另一个主库 来保证数据的安全性与服务的可用性。   但是,如果人为不小心执行了“删全库”操作,命令会同步给其他从(主)库,导致所...

2017-11-23 21:18:29

阅读数:96

评论数:0

互联网公司为啥不使用mysql分区表

缘起:有个朋友问我分区表在58的应用,我回答不出来,在我印象中,百度、58都没有听说有分区表相关的应用,业内进行一些技术交流的时候也更多的是自己分库分表,而不是使用分区表。于是去网上查了一下,并询问了58到家的DBA专家,将自己收到的信息沉淀下来,share给大伙。   解决什么问题? 回答...

2017-11-22 08:05:41

阅读数:209

评论数:0

主从DB与cache一致性

本文主要讨论这么几个问题: (1)数据库主从延时为何会导致缓存数据不一致 (2)优化思路与方案   一、需求缘起 上一篇《缓存架构设计细节二三事》中有一个小优化点,在只有主库时,通过“串行化”的思路可以解决缓存与数据库中数据不一致。引发大家热烈讨论的点是“在主从同步,读写分离的数据库架构...

2017-11-20 07:59:30

阅读数:172

评论数:0

缓存与数据库一致性保证

本文主要讨论这么几个问题: (1)啥时候数据库和缓存中的数据会不一致 (2)不一致优化思路 (3)如何保证数据库与缓存的一致性   一、需求缘起 上一篇《缓存架构设计细节二三事》(点击查看)引起了广泛的讨论,其中有一个结论:当数据发生变化时,“先淘汰缓存,再修改数据库”这个点是大家讨论...

2017-11-15 07:19:58

阅读数:105

评论数:0

细聊冗余表数据一致性

本文主要讨论四个问题: (1)为什么会有冗余表的需求 (2)如何实现冗余表 (3)正反冗余表谁先执行 (4)冗余表如何保证数据的一致性   一、需求缘起 互联网很多业务场景的数据量很大,此时数据库架构要进行水平切分,水平切分会有一个patition key,通过patition k...

2017-11-14 07:26:47

阅读数:187

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭