MySQL-存储结构
存储引擎MySQL体系结构
连接层
最上层是一些客户端和链接服务,主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会为安全接入的每个客户端验证他所具有的操作权限。
服务层
第二层架构主要完成大多数的核心服务功能,如SQL接口,并完成缓存的查询,SQL的分析和优化,部分内置函数的执行。所有跨存储引擎的功能也在这一层实现,如过程、函数等。
引擎层
存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API和存储引擎进行通信。不同的存储引擎具有不同的功能,这样我们可以根据自己的需要,来选取合适的存储引擎。
存储层
主要是将数据存储在文件系统之上,并完成与存储引擎的交互
存储引擎什么是存储引擎?
存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称之为表类型。
12345678# 查询表的建表语句 --默认存储引擎:InnoDBshow create table account(指定自己的表)# 在创建表的时候,指定存储引擎create table 表名(...)ENGINE ...
上海某公司面试题
1.自我介绍一下2.谈谈你对我们公司业务的理解3.你能介绍我们公司吗?4.谈谈你的项目?5.你做的怎么接入API的6.如果你感觉不是你心目中的公司你会选择离开吗7.你还有什么想问的吗?这家公司有坑(就这么简单被我忽悠了),就发了offer
杭州某大厂面试
一面:1.介绍一下自己2.你说你适应能力强,谈谈表现在哪方面3.你能谈谈你身上的优点还有缺点吗?4.你觉得你在学习中遇到最大的挑战是什么?5.令你压力最大的是什么?6.谈谈项目中遇到最大的一个挑战?7.谈谈你的人生规划?二面:1.谈谈你是怎么学的?2.这个项目你是怎么选型的?3.谈谈你的这个项目?4.这个项目是你自己做的,那就介绍一下各个表?5.你知道mysql搜索引擎吗?(就知道InnoDB)6.追问你知道为什么要使用InnoDB吗?(前面我都说了MySQL高级篇还在学习,只是知道InnoDB)7.你数据库是怎么建立索引的?8.你第二个项目运用到了缓存,你说说项目中是怎么使用的?9.你知道redis为什么会比数据库快10.你知道redis是单线程还是多线程?10.你讲讲hashMap底层?(数组+链表+红黑树)11.你知道hashMap是安全的还是不安全的?12.你还有什么要问的吗?
北京某公司二面
二面:1.自我介绍一下?2.你为什么会对这个产生兴趣?3.你是怎么学的?4.你为什么会有将通用功能整合到一个模板下呢?4.令你映像最深的是哪个项目?5.你讲一下你的项目中怎么用到了缓存?6.你讲讲redis有哪些数据结构7.redis为什么要设计这些数据结构?8.为什么使用redis比数据库快呢?9.你讲讲乐观锁,悲观锁,死锁,什么条件下发生死锁?10.spring中Aop和IOC是怎么了解的?11.谈谈你接下来的规划12.你有什么想问的吗?
北京某公司一面
一面:听了一下录音(因为紧张说话结巴)1.自我介绍一下2.你是怎么学的3.我看你项目中有一个API接口开发平台能聊一聊吗4.你在项目中遇到了哪些难点5.你在学校忙吗?玩游戏不(最后就说了一句你还挺优秀的,这个估计没戏)
总结:这是我人生中第一场面试,有点紧张,所以答的并不是很好,特别结巴,给人的感受很不友好,无论在什么场景,无论自己是不是菜鸟,我们都应该保持自信,否则,我们只能被自己的能力所限制,不能成长。
南昌某公司面试(1)
先是做了一套试卷(10来分钟不要就写完了,感觉没有挑战性,就是不知对不对,好久没有学过相关的知识了)做完之后就开始面试
一面:1.自我介绍2.介绍一下自己做的项目?,3.对集合有哪些认识4.你知道List的哪些类5.你知道ArrayList与LinkedList的区别吗6.介绍一下使用过哪些注解7.@Service、@Controller、@Component的区别?8.Component注解可以代替@Controller9.谈谈你对Spring的理解10.谈谈你对索引的认识11.我们来做一个SQL语句的题目吧(现场撸题,好久没学了,把我吓了一跳,还好没啥问题)12.谈谈项目中你分布式锁的使用13.谈谈你对nacos的认识?14.nacos除了作为注册中心,还可以用作什么15.你在项目中是怎么使用Fegin简化服务间通信(这个估计面试官好奇,才问我的)16.谈谈你对maven的理解17.你熟悉哪些linux命令18.讲讲你是怎么用linux部署项目的19.你了解前端vue,项目的前端是自己写的吗?当然是我自己写的,看着官网写的,虽然写的不美观,但是够用
二面:给我讲了讲公司要做什么?谈 ...
数据分析系统介绍
项目介绍什么是BI?BI是商业智能(Business Intelligence)的缩写。它是一种通过收集、分析和呈现数据来帮助企业做出更好决策的技术和过程。BI通常涉及使用各种数据仓库、数据挖掘和数据分析工具,以提取有关企业绩效、市场趋势、客户行为等方面的信息。这些数据可以被转化为可视化图表、报表和仪表盘,可协助企业管理层了解他们所运营的公司的情况,并根据这些信息制定更明智的商业决策。
类似于下图:
BI 商业智能:数据可视化,报表可视化系统
主流BI平台:帆软BI、小马BI、微软Power BI
传统BI平台:https://chartcube.alipay.com/
1.需要人工上传数据
2.需要人工推选分析要用到的数据行和列(数据分析师)
3.需要人工选择图表类型(数据分析师)
4.生成图表(保存配置)
本智能BI平台:区别于传统的BI,用户(数据分析师),只需要导入最最最最原始的数据集,输入想要进行分析的目标(比如帮我分析一下网站的增长趋势),就能利用AI自动生成一个符合要求的图表以及结论。
优点:让不会数据分析的用户也可以通过输入目标快速完成数据分析,大幅节约人力成本, ...
nginx
nginx
公司产品出现瓶颈?
我们公司项目刚刚刚上线的时候,并发量小,用户使用的少,所以在低并发的情况下,一个jar包启动应用就够了,然后内部tomcat返回内容给用户
但是慢慢的,使用我们平台的用户多了,并发量慢慢慢增大了,这时候一台服务器满足不了我们的需求了
于是我们横向扩展,又增加了服务器。这时候几个项目启动在不同的服务器上,用户要访问,就需要增加一个代理访问器了,通过代理服务器来帮我们转发和处理请求
我们希望这个代理服务器可以帮助我们接收用户请求,然后将用户的请求按照规则帮我们转发到不同的服务器节点之上。这个过程用户是无感知的,用户并不知道是哪个服务器返回的结果,我们还希望它可以按照服务器的性能提供不同权重的选择。保证最佳体验!所以我们使用了ngnix
直接访问服务器产生的问题:
代理:
架构的核心精髓:没有什么是加一层解决不了的
nginx反向代理的好处:
提高访问速度
进行负载均衡
保证后端服务安全
所谓负载均衡,就是把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器
nginx是什么?Nginx 是一款高性能的 Web 服务器和反向代理服 ...
面试题-01
1、JDK 和 JRE 和 JVM 分别是什么,有什么区别?JDK(Java Development Kit,Java 软件开发工具包)
JDK(Java Development Kit):JDK 是 Java 开发⼯具包,包含了编写、编译、调试和运⾏ Java 程序所需的所有⼯具和组件(包含了JRE和一些java开发工具),⽐如编译器(javac)、Java API、调试⼯具等。JDK 是针对 Java 开发⼈员的,它包含了 JRE,还有编译器和其他⼯具,可以⽤来编写和调试 Java 程序。
JRE(Java Runtime Environment,Java 运行环境)
JRE 是 Java 运⾏时环境,包括了 Java 虚拟机(JVM)和 Java 标准类 库(Java API)。JRE 是针对 Java 应⽤程序的,它提供了在计算机上运⾏ Java 应⽤程序所需的最⼩环境。
JVM(Java Virtual Machine,Java 虚拟机)
JVM 是 Java 虚拟机,JVM是JRE的一部分。它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。在J ...
SpringCloud实用篇(五)——RabbitMQ
服务异步通讯MQ(消息队列)同步通讯和异步通讯学习MQ之前,先学习同步通讯和异步通讯
同步通讯
同步通讯指的是通讯双方需要在时间上保持一致,也就是一个操作必须等待另一个操作完成后才能执行下一个操作。
比如一个请求需要等待服务器返回结果之后才能继续处理下一个请求。
同步通讯方式的特点:
简单明了
适用于处理量不大、并发量不高的场景
缺点:
阻塞等待:在同步通讯过程中,请求方需要等待响应方返回数据,这个等待过程可能会阻塞请求方的线程,从而导致程序无法继续执行其他任务。
慢速处理:由于同步通讯需要等待响应方返回数据后再进行下一步处理,所以它的处理速度相对慢,特别是在高并发量和大数据量的情况下。
处理逻辑复杂:同步通讯需要明确的时间规划和处理顺序,这往往需要编写更复杂的代码逻辑,增加了程序的开发难度和维护成本。
可靠性低:由于同步通讯需要双方在时间上保持一致,所以如果其中一个方出现了问题,可能会导致整个通讯过程失败,进而影响到整个系统的正常运行。
同步调用存在问题:
耦合度高:每次加入新的需求,都要修改原来的代码
性能下降:调用者需要等待服务提供者响应,如果调用链过长则响应时间等于每 ...