mysql
文章平均质量分 74
个人博客主页:wyn-365.club
Coding路人王
V:CaptainWang365
展开
-
Log4j高危漏洞复现及解决方案-----周瑜老师
一、Log4j二、漏洞复现2.1 log4j版本 <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.14.0</version> </dependency>原创 2021-12-13 12:39:25 · 3231 阅读 · 0 评论 -
Mysql回表与索引覆盖,联合索引问题
一、Mysql为什么可以存储海量数据?1.使用B+引擎,可以减少IO请求,使用的B+树,为N叉树,与普通的二叉树比较起来,高度跟低2.查询效率稳定,每次都从根节点到叶子节点,叶子节点只存储数据3.叶子节点为双向循环链表,且按照关键字大小进行排列,可以有效的进行范围查询,hash索引在等值查询上效率高。二、InnoDB与聚簇索引聚簇索引:数据与索引存放在一起,找到了索引就找到了数据InnoDB:底层由B+树实现,每个节点对应innodb的一个page,page的大小固定为16K,同一页可以有多条数原创 2021-12-12 10:14:09 · 694 阅读 · 0 评论 -
redis与mysql数据库数据双写不一致如何解决?
一、高并发执行1.1 正常情况下程序没有问题!!!1.2 网络卡顿 时间延迟数据库真正的结果为6,但是最后改为了10,发现了数据不一致性。二 解决办法2.1 写完删除缓存,每次查询数据库又发生了问题!!!2.2 延迟双删【不考虑】不太确定sleep的时间不确定,不稳定,不能100%解决,延迟很高!!!!吞吐量低!!!2.3 内存队列【不推荐】对基于同一个Key的增删改查操作,放到一个内存队列里面,可以解决性能:麻烦,效率低,并行的任务,串行化了2.4 加锁操作【推荐】原创 2021-11-12 21:37:01 · 972 阅读 · 0 评论 -
如何设计一个秒杀系统???
一、秒杀系统【并发读、并发写】1.秒杀时大量用户会在高并发同一时间同时进行抢购,网站瞬时访问流量激增。2.秒杀一般是访问请求数量远远大于库存数量,只有少部分用户能够秒杀成功。3.秒杀业务流程比较简单,一般就是下订单减库存。1.1 设计思路1.BlockingQueue阻塞队列限流: 鉴于只有少部分用户能够秒杀成功,所以要限制大部分流量,只允许少部分流量进入服务后端。2.redis,MQ削峰:对于秒杀系统瞬时会有大量用户涌入,所以在抢购一开始会有很高的瞬间峰值。高峰值流量是压垮系统很重要的原因,.原创 2021-09-28 16:50:15 · 185 阅读 · 0 评论 -
【印象深刻------美团优选】美团凉后,【美团优选】捞起【查漏补缺,应用场景,底层欠缺】
一、面试概况今天是之前面美团java研发凉之后的,美团后端捞起面试,我之前一直是觉得自我感觉良好的,【感觉技术面以及四门专业课=====从来不虚】,结果今天感觉非常的知足,不是说的笔试和面试怎么杨吧,就是我在今天这场面试中,积攒到了很多经验,找到了自身的不足,应该思考的地方,面试的要点,让我很是受益,所以抓紧做一个笔记。二、面试-笔试两个算法:一个是二叉树的先序遍历【做出来了】合并两个有序数组【也做出来了】三、技术面3.1 Redis【一直在干redis连环炮】3.2 说一下redis为什么原创 2021-09-23 22:20:05 · 376 阅读 · 0 评论 -
收集牛客网腾讯面试查漏补缺【threadlocal、explain、引用】
一、ThreadLocal【解决共享变量】1.ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。2.使得每个线程在某一时间访问到的并不是同一个对象,这样就隔离了多个线程对数据的数据共享。3.ThreadLocalMap是ThreadLocal的内部静态类,而它的构成主要是用Entry来保存数据 ,而且原创 2021-08-15 14:37:08 · 138 阅读 · 0 评论 -
整理牛客网 ----- 阿里校招 Java 后端 1-5 面 + HR 面面经
一、一面 8.27(约 60 min,电话)1.做过的印象最深的项目?(聊项目)2.MySQL 的 log 有哪些?分别是用来做什么的?(undo log,redo log,binlog)重做日志(redo log):确保事务的持久性。redo日志记录事务执行后的状态,用来恢复未写入data file的已成功事务更新的数据。防止在发生故障的时间点,尚有脏页未写入磁盘,在重启mysql服务的时候,根据redo log进行重做,从而达到事务的持久性这一特性。回滚日志(undo log):保证数据的原子性原创 2021-08-04 20:12:50 · 463 阅读 · 0 评论 -
好友阿里一面后端Java开发秋招题目
个人介绍线程池 参数拒绝策略handler种类动态代理实现方式jdk代理和cglib代理的区别可重入锁volatile和synchronized的区别内存屏障GC算法CMS、G1区别OOM和StackOverFlowError的使用场景B+树和B树的区别如何判断链表有环Mybatis的mapper如何映射到sql中IO流多路IO复用 select pol epoll哲学家就餐问题URL从输入到页面渲染的过程课题...原创 2021-08-04 14:59:56 · 174 阅读 · 0 评论 -
简述MyISAM和InnoDB的区别????
一、MyISAM1.不支持事务,但是每次查询都是原子的:2.支持表级锁,即每次操作是对整个表加锁:3.存储表的总行数;一个MYISAM表有三个文件:索引文件、表结构文件、数据文件;采用非聚集索引,索引文件的数据域存储指向数据文件的指针。辅索引与主索引基本-致,但是辅索引|不用保证唯一性。二、InnoDb1.支持ACID的事务,支持事务的四种隔离级别;2.支持行级锁及外键约束:因此可以支持写并发;3.不存储总行数;一个InnoDb弓|擎存储在一个文件空间 (共享表空间,表大小不受操作系统控原创 2021-07-19 09:58:27 · 217 阅读 · 0 评论 -
Mysq|聚簇和非聚簇索引的区别?????
一、都是B+树的数据结构●聚簇索引:将数据存储与索引放到了一块、并且是按照-定的顺序组织的,找到索引也就找到了数据,数据的物理存放顺序与索引|顺序是一致的, 即:只要索引|是相邻的,那么对应的数据一定也是相邻地存放在磁盘上的●非聚簇索张:叶子节点不存储数据、存储的是数据行地址,也就是说根据索引查找到数据行的位置再取磁盘查找数据,这个就有点类似一本树的目录,比如我们要找第三章第一节,那我们先在这个目录里面找,找到对应的页码后再去对应的页码看文章。二、优势1、查询通过聚簇索引可以直接获取数据,相比非聚族原创 2021-07-18 21:00:12 · 160 阅读 · 0 评论 -
8.图灵学院-----阿里/京东/滴滴/美团整理----MySQL数据库篇
一、MySQL有哪几种数据存储引擎?有什么区别?MySQL中通过show ENGINES指令可以看到所有支持的数据库存储引擎。 最为常用的就是MyISAM 和InnoDB 两种。MyISAM和InnDB的区别:1、存储文件。 MyISAM每个表有两个文件。 MYD和MYISAM文件。 MYD是数据文件。 MYI是索引文件。 而InnDB每个表只有一个文件,idb。2、InnoDB支持事务,支持行级锁,支持外键。3、InnoDB支持XA事务4、InnoDB支持savePoints二、什么是脏读、原创 2021-05-10 21:42:17 · 404 阅读 · 0 评论 -
Mysql模拟事物的隔离级别【脏读、不可重复读、幻读】
一、简介未提交读(Read Uncommitted):允许脏读,也就是可能读取到其他会话中未提交事务修改的数据。提交读(Read Committed):只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别 (不重复读)。可重复读(Repeated Read):可重复读。在同一个事务内的查询都是事务开始时刻一致的,InnoDB默认级别。在SQL标准中,该隔离级别消除了不可重复读,但是还存在幻象读。串行读(Serializable):完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻原创 2021-02-18 09:58:44 · 2061 阅读 · 4 评论