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 · 3216 阅读 · 0 评论 -
Mysql回表与索引覆盖,联合索引问题
一、Mysql为什么可以存储海量数据? 1.使用B+引擎,可以减少IO请求,使用的B+树,为N叉树,与普通的二叉树比较起来,高度跟低 2.查询效率稳定,每次都从根节点到叶子节点,叶子节点只存储数据 3.叶子节点为双向循环链表,且按照关键字大小进行排列,可以有效的进行范围查询,hash索引在等值查询上效率高。 二、InnoDB与聚簇索引 聚簇索引:数据与索引存放在一起,找到了索引就找到了数据 InnoDB:底层由B+树实现,每个节点对应innodb的一个page,page的大小固定为16K,同一页可以有多条数原创 2021-12-12 10:14:09 · 680 阅读 · 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 · 962 阅读 · 0 评论 -
如何设计一个秒杀系统???
一、秒杀系统【并发读、并发写】 1.秒杀时大量用户会在高并发同一时间同时进行抢购,网站瞬时访问流量激增。 2.秒杀一般是访问请求数量远远大于库存数量,只有少部分用户能够秒杀成功。 3.秒杀业务流程比较简单,一般就是下订单减库存。 1.1 设计思路 1.BlockingQueue阻塞队列限流: 鉴于只有少部分用户能够秒杀成功,所以要限制大部分流量,只允许少部分流量进入服务后端。 2.redis,MQ削峰:对于秒杀系统瞬时会有大量用户涌入,所以在抢购一开始会有很高的瞬间峰值。高峰值流量是压垮系统很重要的原因,.原创 2021-09-28 16:50:15 · 168 阅读 · 0 评论 -
【印象深刻------美团优选】美团凉后,【美团优选】捞起【查漏补缺,应用场景,底层欠缺】
一、面试概况 今天是之前面美团java研发凉之后的,美团后端捞起面试,我之前一直是觉得自我感觉良好的,【感觉技术面以及四门专业课=====从来不虚】,结果今天感觉非常的知足,不是说的笔试和面试怎么杨吧,就是我在今天这场面试中,积攒到了很多经验,找到了自身的不足,应该思考的地方,面试的要点,让我很是受益,所以抓紧做一个笔记。 二、面试-笔试 两个算法: 一个是二叉树的先序遍历【做出来了】 合并两个有序数组【也做出来了】 三、技术面 3.1 Redis【一直在干redis连环炮】 3.2 说一下redis为什么原创 2021-09-23 22:20:05 · 355 阅读 · 0 评论 -
收集牛客网腾讯面试查漏补缺【threadlocal、explain、引用】
一、ThreadLocal【解决共享变量】 1.ThreadLocal叫做线程变量,意思是ThreadLocal中填充的变量属于当前线程,该变量对其他线程而言是隔离的,也就是说该变量是当前线程独有的变量。ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。 2.使得每个线程在某一时间访问到的并不是同一个对象,这样就隔离了多个线程对数据的数据共享。 3.ThreadLocalMap是ThreadLocal的内部静态类,而它的构成主要是用Entry来保存数据 ,而且原创 2021-08-15 14:37:08 · 129 阅读 · 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 · 450 阅读 · 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 · 163 阅读 · 0 评论 -
简述MyISAM和InnoDB的区别????
一、MyISAM 1.不支持事务,但是每次查询都是原子的: 2.支持表级锁,即每次操作是对整个表加锁: 3.存储表的总行数; 一个MYISAM表有三个文件:索引文件、表结构文件、数据文件; 采用非聚集索引,索引文件的数据域存储指向数据文件的指针。辅索引与主索引基本-致,但是辅索引|不用保证唯一性。 二、InnoDb 1.支持ACID的事务,支持事务的四种隔离级别; 2.支持行级锁及外键约束:因此可以支持写并发; 3.不存储总行数; 一个InnoDb弓|擎存储在一个文件空间 (共享表空间,表大小不受操作系统控原创 2021-07-19 09:58:27 · 204 阅读 · 0 评论 -
Mysq|聚簇和非聚簇索引的区别?????
一、都是B+树的数据结构 ●聚簇索引:将数据存储与索引放到了一块、并且是按照-定的顺序组织的,找到索引也就找到了数据,数据的物理存放顺序与索引|顺序是一致的, 即:只要索引|是相邻的,那么对应的数据一定也是相邻地存放在磁盘上的 ●非聚簇索张:叶子节点不存储数据、存储的是数据行地址,也就是说根据索引查找到数据行的位置再取磁盘查找数据,这个就有点类似一本树的目录,比如我们要找第三章第一节,那我们先在这个目录里面找,找到对应的页码后再去对应的页码看文章。 二、优势 1、查询通过聚簇索引可以直接获取数据,相比非聚族原创 2021-07-18 21:00:12 · 146 阅读 · 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 · 370 阅读 · 0 评论 -
Mysql模拟事物的隔离级别【脏读、不可重复读、幻读】
一、简介 未提交读(Read Uncommitted):允许脏读,也就是可能读取到其他会话中未提交事务修改的数据。 提交读(Read Committed):只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别 (不重复读)。 可重复读(Repeated Read):可重复读。在同一个事务内的查询都是事务开始时刻一致的,InnoDB默认级别。在SQL标准中,该隔离级别消除了不可重复读,但是还存在幻象读。 串行读(Serializable):完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻原创 2021-02-18 09:58:44 · 2048 阅读 · 4 评论