
数据库
文章平均质量分 93
hongmingover
。。。。。。。
展开
-
[灵魂拷问]MySQL面试高频问题(工程师方向)
[灵魂拷问]MySQL面试高频问题(工程师方向)程序君JAVA高级架构2020作者丨呼延十juejin.im/post/5d351303f265da1bd30596f9前言本文主要受众为开发人员,所以不涉及到MySQL的服务部署等操作,且内容较多,大家准备好耐心和瓜子矿泉水.前一阵系统的学习了一下MySQL,也有一些实际操作经验,偶然看到一篇和MySQL相关的面试文章,发现其中的一些问题自己也回答不好,虽然知识点大部分都知道,但是无法将知识串联起来.因此决定搞一个MyS...转载 2021-03-30 13:48:25 · 249 阅读 · 0 评论 -
说说MySQL事务的实现原理
面试官:说说MySQL事务的实现原理小小木的博客业余草2020-09-27你知道的越多,不知道的就越多,业余的像一棵小草!你来,我们一起精进!你不来,我和你的竞争对手一起精进!编辑:业余草来源:cnblogs.com/wyc1994666/p/11367051.html推荐:https://www.xttblog.com/?p=5107开篇相信大家都用过事务以及了解他的特点,如原子性(Atomicity),一致性(Consistency),隔离型(Isolation)以及..转载 2021-03-28 11:38:06 · 206 阅读 · 0 评论 -
数据库面试没那么难,不信你看这24道题!
数据库面试没那么难,不信你看这24道题!让我来处理高并发关注12020.12.29 13:21:53字数 5,298阅读 3,936一、为什么用自增列作为主键1、如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引、如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引、如果也没有这样的唯一索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(ROWID随着行记录的写入而主键递增,这个ROWID不像ORACLE原创 2021-03-28 11:02:29 · 184 阅读 · 0 评论 -
深入了解MySQL主从复制的原理
深入了解MySQL主从复制的原理原创SHSH的全栈笔记1月12日收录于话题#MySQL2个欢迎微信关注「SH的全栈笔记」0. 主从复制首先主从复制是什么?简单来说是让一台MySQL服务器去复制另一台MySQL的数据,使两个服务器的数据保持一致。这种方式与Redis的主从复制的思路没有太大的出入。如果你对Redis的主从复制感兴趣可以去看看《Redis的主从复制》。那既然Redis和MySQL都采用了复制这种方式,主从复制所带来的意义是什么呢?通过复制功能,构建一...原创 2021-03-26 12:40:10 · 245 阅读 · 0 评论 -
出现这 4 种情况,才是考虑分库分表的时候!
出现这 4 种情况,才是考虑分库分表的时候!点击关注 ????架构之路1月25日点击上方“架构之路”,关注、置顶公众号架构干货,第一时间送达!前言当数据库的数据量过大,大到一定的程度,我们就可以进行分库分表。那么基于什么原则,什么方法进行拆分,这就是本篇所要讲的。数据库瓶颈不管是 IO 瓶颈还是 CPU 瓶颈,最终都会导致数据库的活跃连接数增加,进而逼近甚至达到数据库可承载的活跃连接数的阈值。在业务 Service 来看, 就是可用数据库连接少甚至无连接可用,接下来就可以想象原创 2021-03-24 14:18:09 · 153 阅读 · 0 评论 -
布隆过滤器的原理、实现和探究
布隆过滤器的原理、实现和探究2014年06月22日 08:30:20打工是不可能打工滴阅读数:5766更多所属专栏:机器学习理论与实践1.布隆过滤器的使用价值有时候我们需要判断一个元素是否在一个集合中。比如,在字处理软件中,需要检查一个单词是否拼写正确(也就是要判断它是否在已知的字典里);在警察系统中,一个嫌疑人的名字是否出现在嫌疑名单上;在网络爬虫里,一个网址是否已经...转载 2019-04-16 10:32:59 · 223 阅读 · 0 评论 -
高并发架构系列:什么是流量削峰?如何解决秒杀业务的削峰场景
高并发架构系列:什么是流量削峰?如何解决秒杀业务的削峰场景流量削峰的由来主要是还是来自于互联网的业务场景,例如,马上即将开始的春节火车票抢购,大量的用户需要同一时间去抢购;以及大家熟知的阿里双11秒杀, 短时间上亿的用户涌入,瞬间流量巨大(高并发),比如:200万人准备在凌晨12:00准备抢购一件商品,但是商品的数量缺是有限的100-500件左右。这样真实能购买到该件商品的用户也...转载 2019-04-16 10:49:04 · 1288 阅读 · 0 评论 -
redis使用watch完成秒杀抢购功能(转)
redis使用watch完成秒杀抢购功能:使用redis中两个key完成秒杀抢购功能,mywatchkey用于存储抢购数量和mywatchlist用户存储抢购列表。它的优点如下:1. 首先选用内存数据库来抢购速度极快。2. 速度快并发自然没不是问题。3. 使用悲观锁,会迅速增加系统资源。4. 比队列强的多,队列会使你的内存数据库资源瞬间爆棚。5. 使用乐观锁,达到...转载 2019-04-16 11:38:01 · 225 阅读 · 0 评论 -
redis事务以及watch的理解
redis事务以及watch的理解2018.05.14 12:04字数 28阅读 156评论 0喜欢 0事务的特性1.原子性,数据库事务中的多个操作,要么同时执行成功,要么一个也不执行,执行的时候将事务中的命令入队列,当客户端发送执行命令时,将命令依次执行,如果遇到回滚操作,则抛弃该事务中队列的命令.2.一致性,数据库在执行事务之前一致的,那么执行之后也一致,这其中的一...转载 2019-04-16 11:40:55 · 440 阅读 · 0 评论 -
高并发请求的缓存设计策略
高并发请求的缓存设计策略前几天,我司出了个篓子。当时正值某喜闻乐见的关键比赛结束,一堆人打开我司app准备看点东西,结果从来没有感受到过这么多关注量的该功能瞬间幸福到眩晕,触发了熔断,结果就是大量兴致冲冲打开app准备看该比赛结果的人被迫刷了十分钟三天前的野外跑酷,负责内容的人火大到直接骂娘。虽然这个业务不是我负责,但是也跟相关的人聊了下情况,感慨了一下,于是有了这一篇文章。1.为何需...转载 2019-04-16 15:30:44 · 170 阅读 · 0 评论 -
三种常见的限流算法
三种常见的限流算法在开发高并发系统时,有三把利器用来保护系统:缓存、降级和限流。那么何为限流呢?顾名思义,限流就是限制流量,就像你宽带包了1个G的流量,用完了就没了。通过限流,我们可以很好地控制系统的qps,从而达到保护系统的目的。本篇文章将会介绍一下常用的限流算法以及他们各自的特点。1、计数器算法计数器算法是限流算法里最简单也是最容易实现的一种算法。比如我们规定,对于A接口来说,我们1...转载 2019-04-16 20:24:13 · 295 阅读 · 0 评论 -
分布式缓存击穿(布隆过滤器 Bloom Filter)
分布式缓存击穿(布隆过滤器 Bloom Filter)2018-07-03 04:19:56原创分布式系统共1249人围观0个不明物体前面的文章介绍了缓存的分类和使用的场景。通常情况下,缓存是加速系统响应的一种途径,通常情况下只有系统的部分数据。当请求了缓存中没有的数据时,这时候就会回源到DB里面。此时如果黑客故意对上面数据发起大量请求,则DB有可能会挂掉,这就是缓存击穿...转载 2019-04-15 23:50:35 · 192 阅读 · 0 评论 -
redis 基本命令--位图
redis 基本命令--位图1.业务背景现有一个业务需求,需要从一批很大的用户活跃数据(2亿+)中判断用户是否是活跃用户。2. 存在的挑战海量数据如何尽可能用小的空间存储 如何能快速获取指定的数据 如何能快速的写入到目标存储3.解决思路这里使用redis的位操作来处理。redis中所有数据都是二进制形式存储的。redis支持一个setbit和getbit操作,它...转载 2019-04-15 23:45:25 · 152 阅读 · 0 评论 -
布隆过滤器(bloom filter)介绍以及php和redis实现布隆过滤器实现方法
布隆过滤器(bloom filter)介绍以及php和redis实现布隆过滤器实现方法引言在介绍布隆过滤器之前我们首先引入几个场景。场景一在一个高并发的计数系统中,如果一个key没有计数,此时我们应该返回0,但是访问的key不存在,相当于每次访问缓存都不起作用了。那么如何避免频繁访问数量为0的key而导致的缓存被击穿?有人说, 将这个key的值置为0存入缓存不就行了吗?确实,这...转载 2019-04-15 20:51:50 · 1622 阅读 · 0 评论 -
高并发请求的缓存设计策略
丁浪,阿里影业架构师,社区活跃人士。有分布式事务,分布式缓存方面的总结文章获得好评。本文获作者授权发布。缓存一致性问题(分布式事务问题)当数据时效性要求很高时,需要保证缓存中的数据与数据库中的保持一致,而且需要保证缓存节点和副本中的数据也保持一致,不能出现差异现象。这就比较依赖缓存的过期和更新策略。一般会在数据发生更改的时,主动更新缓存中的数据或者移除对应的缓存。缓...转载 2019-04-15 20:16:28 · 142 阅读 · 0 评论 -
千万级规模高性能、高并发的网络架构经验分享
千万级规模高性能、高并发的网络架构经验分享主 题:INTO100沙龙时间:2015年11月21日下午地点:梦想加联合办公空间分享人:卫向军(毕业于北京邮电大学,现任微博平台架构师,先后在微软、金山云、新浪微博从事技术研发工作,专注于系统架构设计、音视频通讯系统、分布式文件系统和数据挖掘等领域。)架构以及我理解中架构的本质在开始谈我对架构本质的理解之前,先谈谈对今天技术沙龙主题的个...转载 2019-04-08 17:07:45 · 137 阅读 · 0 评论 -
redis的过期策略以及内存淘汰机制
redis的过期策略以及内存淘汰机制分析:这个问题其实相当重要,到底redis有没用到家,这个问题就可以看出来。比如你redis只能存5G数据,可是你写了10G,那会删5G的数据。怎么删的,这个问题思考过么?还有,你的数据已经设置了过期时间,但是时间到了,内存占用率还是比较高,有思考过原因么?回答:redis采用的是定期删除+惰性删除策略。为什么不用定时删除策略?...转载 2019-04-08 10:24:18 · 197 阅读 · 0 评论 -
Redis多个数据库
Redis多个数据库注意:Redis支持多个数据库,并且每个数据库的数据是隔离的不能共享,并且基于单机才有,如果是集群就没有数据库的概念。Redis是一个字典结构的存储服务器,而实际上一个Redis实例提供了多个用来存储数据的字典,客户端可以指定将数据存储在哪个字典中。这与我们熟知的在一个关系数据库实例中可以创建多个数据库类似,所以可以将其中的每个字典都理解成一个独立的数据库。每个数据...转载 2019-03-12 19:58:27 · 325 阅读 · 0 评论 -
redis内存回收策略
redis内存回收策略版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/JYL15732624861/article/details/82414056删除到达过期时间的键对象 内存使用达到maxmemory上限时触发内存溢出控制策略 1、删除过期键对象 redis所有键都可以设置过期时间,因为内存中大量建维护消耗大量CPU,对...转载 2019-03-11 10:04:43 · 184 阅读 · 0 评论 -
Redis事务使用方法 watch
Redis事务Redis事务是一组命令的集合,也是Redis的最小执行单位之一。一个事务的所有命令,要么都执行,要么都不执行。Redis能保证事务执行期间不会有其他命令插入。相关命令命令 格式 说明 DISCARD DISCARD 取消事务 EXEC EXEC 执行事务中的命令 MULTI MULTI 标记一个事务...转载 2019-04-17 17:44:04 · 2364 阅读 · 0 评论 -
算法系列-bitmap算法详解和实现
算法系列-bitmap算法详解和实现版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/tiankong_/article/details/776510761.什么是bitmap?我们可以将bitmap看成是一种数据结构,所谓的Bit-map就是用一个(或几个)bit位来标记某个元素对应的state(value)。最基本的情况,使用1bit...转载 2019-04-17 19:25:36 · 246 阅读 · 0 评论 -
Redis之bitMap(位图)
Redis之bitMap(位图) 1、位图结构redis可以直接对二进制位进行操作。2、setbit位图设值offset:位数value:值 只能是0或者13、getbit获取位图值4、bitcount统计范围内的1个数5、bitpos计算范围内targetbit的位置6、位图的使用...转载 2019-04-18 11:10:09 · 260 阅读 · 0 评论 -
MySQL覆盖索引
MySQL覆盖索引一、覆盖索引覆盖索引(covering index)指一个查询语句的执行只用从索引中就能够取得,不必从数据表中读取。也可以称之为实现了索引覆盖。如果一个索引包含了(或覆盖了)满足查询语句中字段与条件的数据就叫做覆盖索引。二、覆盖索引实例1.未建立索引前select SQL_NO_CACHE count(name) from index_test where ...原创 2019-08-21 19:24:06 · 163 阅读 · 0 评论 -
MySQL数据库中的索引——索引的使用,最左前缀原则
上文中,我们了解了MySQL不同引擎下索引的实现原理,在本文我们将继续探讨一下索引的使用以及优化。创建索引可以大大提高系统的性能。第一,通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。第二,可以大大加快数据的检索速度,这也是创建索引的最主要的原因。第三,可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。第四,在使用分组和排序子句进行数据检索时...原创 2019-08-21 17:59:04 · 371 阅读 · 0 评论 -
MySQL索引底层实现原理
MySQL索引底层实现原理编辑推荐: 本文来自于www.cnblogs.com,了解MySQL索引底层实现原理吗?主要介绍了索引的本质,相关的主存取原理,磁盘原理,局部性原理,带大家了解进行详细的实现。 索引的本质MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构。提取句子主干,就可以得到索引的本质:索引是数据结构。我们知道,数据库查询...转载 2019-08-13 14:28:14 · 146 阅读 · 0 评论 -
漫画:什么是服务熔断
漫画:什么是服务熔断什么是服务熔断?熔断这一概念来源于电子工程中的断路器(Circuit Breaker)。在互联网系统中,当下游服务因访问压力过大而响应变慢或失败,上游服务为了保护系统整体的可用性,可以暂时切断对下游服务的调用。这种牺牲局部,保全整体的措施就叫做熔断。如果不采取熔断措施,我们的系统会怎样呢?我们来看一个栗子。当前系统中有A,B,C...转载 2019-05-13 16:46:52 · 199 阅读 · 0 评论 -
缓存穿透、缓存击穿、缓存雪崩区别和解决方案
缓存穿透、缓存击穿、缓存雪崩区别和解决方案一、缓存处理流程 前台请求,后台先从缓存中取数据,取到直接返回结果,取不到时从数据库中取,数据库取到更新缓存,并返回结果,数据库也没取到,那直接返回空结果。 二、缓存穿透 描述: 缓存穿透是指缓存和数据库中都没有的数据,而用户不断发起请求,如发起为id为“-1”的数据或id为特别大不...转载 2019-05-13 17:52:46 · 223 阅读 · 0 评论 -
Redis常用集群分片实现方案以及ShardedJedis分片源码简析
Redis常用集群分片实现方案以及ShardedJedis分片源码简析这两天项目上需要添加一个限流,基于redis+lua的实现方案,项目中使用ShardedJedis进行redis集群分片,但是ShardedJedis并不支持eval和evalsha函数,所以就对jedis包中SharedJedis部分做了一点修改,使其可以支持这两个函数。顺便看了一下ShardedJedis中分片部分...转载 2019-04-24 14:54:04 · 464 阅读 · 0 评论 -
redis分片机制
redis分片机制 所谓的分片其实就是大的数据分成几个小的部分,分别放置存储,对于数据而言无外乎就是读写,读写的基础就是数据的定位,redis利用集群的方式+槽位完成,分片的数据的定位和管理维护。 Redis 集群是一个可以在多个 Redis 节点之间进行数据共享的设施(installation)。Redis 集群使用数据分片(sharding)而非一致性哈希(consis...转载 2019-04-24 14:40:04 · 228 阅读 · 0 评论 -
Redis中bitmap的妙用
Redis中bitmap的妙用redis php bitmap23k 次阅读 · 读完需要 12 分钟62在Redis中我们经常用到set,get等命令,细心的你有没有发现,还有几个相似的命令叫setbit,getbit,它们是用来干嘛的?BitMap是什么就是通过一个bit位来表示某个元素对应的值或者状态,其中的key就是对应元素本身。我们知道8...转载 2019-04-18 15:14:13 · 147 阅读 · 0 评论 -
【算法】——Bit-Map(位图)
【算法】——Bit-Map(位图)置顶2019年02月18日 15:03:20Teingi阅读数:51 所谓的BitMap就是用一个bit位来标记某个元素所对应的value,而key即是该元素,由于BitMap使用了bit位来存储数据,因此可以大大节省存储空间。一、Bit-map的基本思想 32位机器上,对于一个整型数,比如int a=1 在内存中占32bit位,这...转载 2019-04-18 11:12:15 · 322 阅读 · 0 评论 -
redis中maxmemory和淘汰策略
redis中maxmemory和淘汰策略2017.07.29 12:43*字数 463阅读 3163评论 0喜欢 0在redis中,允许用户设置最大使用内存大小maxmemory(需要配合maxmemory-policy使用),设置为0表示不限制;当redis内存数据集快到达maxmemory时,redis会实行数据淘汰策略。Redis提供6种数据淘汰策略:volatile-...原创 2019-03-10 14:10:50 · 624 阅读 · 0 评论 -
MySQL索引原理及慢查询优化
MySQL索引原理及慢查询优化2014年06月30日作者: NeverMore文章链接6280字13分钟阅读背景MySQL凭借着出色的性能、低廉的成本、丰富的资源,已经成为绝大多数互联网公司的首选关系型数据库。虽然性能出色,但所谓“好马配好鞍”,如何能够更好的使用它,已经成为开发工程师的必修课,我们经常会从职位描述上看到诸如“精通MySQL”、“SQL语句优化”、“了解数据库原...转载 2019-02-28 20:29:21 · 135 阅读 · 0 评论 -
数据库事务的四大特性以及事务的隔离级别
数据库事务的四大特性以及事务的隔离级别 本篇讲诉数据库中事务的四大特性(ACID),并且将会详细地说明事务的隔离级别。 如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全转载 2017-11-01 20:42:58 · 209 阅读 · 0 评论 -
Innodb事务种类及实现
Innodb事务种类及实现innodb事务可以分为以下几种:1.扁平事务 2.带有保存点的扁平事务 3.链事务 4.嵌套事务 5.分布式事务各自分别介绍:1.扁平事务 这是事务中最简单的一种,也是使用最广泛的一种。在扁平事务中,所有的操作都在同一层次,由begin work开头,由commit work或者rollback wor转载 2017-11-01 20:36:46 · 414 阅读 · 0 评论 -
MySQL更新死锁问题
MySQL更新死锁问题Lei Huang 2015-08-13 4961 阅读 之前写了一篇博客 http://leihuang.org/2015/07/22/concurrence-lock/就是如何利用乐观锁来解决并发问题,但是项目推到线上后就报错了,如下-08-13 15:12:44 [ERROR] com.zhubajie.coupon.app.Coup转载 2017-11-08 15:20:34 · 292 阅读 · 0 评论 -
MySQL主从复制
本章内容:主从复制简介原理备份主库及恢复从库,配置从库生效读写分离如果主宕机了,怎么办?双主的情况MySQL 备份及恢复方案备份单个及多个数据库mysqldump 的常用参数如何增量恢复呢?增量恢复的必要条件生产环境 mysqldump 备份命令恢复喽 一、MySQL主从复制1、简介我们为什么要用主从复制?主从复制目的:可以做数据库的实时备份转载 2017-11-08 15:06:12 · 260 阅读 · 0 评论 -
【MySql】赶集网mysql开发36条军规
【MySql】赶集网mysql开发36条军规摘要: 写在前面的话: 总是在灾难发生后,才想起容灾的重要性; 总是在吃过亏后,才记得曾经有人提醒过。 (一)核心军规 (1)不在数据库做运算 cpu计算务必移至业务层; (2)控制单表数据量 int型不超过1000w,含char则不超过500w; 合理分表; 限制单库表数量在30...写在前面的话转载 2017-09-01 16:23:47 · 281 阅读 · 0 评论 -
MyISAM和InnoDB的索引在实现上的不同
MyISAM和InnoDB的索引在实现上的不同 1 MyISAM只把索引载入内存,数据缓存依赖于操作系统,InnoDB把索引和数据都载入内存缓冲 ,在存放方面,共享表空间: 某一个数据库的所有的表数据,索引文件全部放在一个文件中,默认这个共享表空间的文件路径在data目录下。 默认的文件名为:ibdata1 初始化为10M。独占表空间转载 2017-09-05 21:08:45 · 287 阅读 · 0 评论 -
MySQL架构设计谈:从开发规范、选型、拆分到减压
MySQL架构设计谈:从开发规范、选型、拆分到减压作者介绍李辉,原新浪爱彩票运维负责人,常用网名:门牙没了。曾主导新浪爱彩票的MySQL运维工作。培训合伙人、资深讲师,中国科学院大学在读研究生(大数据方向),擅长大型项目的关系型数据库运维和管理,现在在数据库运维自动化方向研究。随着MySQL自身的发展与不断完善,不知不觉中整个互联网行业已离不开这转载 2017-08-22 09:54:09 · 407 阅读 · 0 评论