当前位置: 首页 > news >正文

【Java面试】概念性的问题怎么答,看完高手的回答一口气答出完整思路,Nosql的理解

“谈谈你对Nosql的理解”

如果你遇到这个问题的时候,找不到回答的思路

脑子里面一片混乱,然后回答的时候吞吞吐吐。

建议你看完整篇文章。

大家好,我是Mic,一个工作了14年的Java程序员

关于这个问题,面试官想考察什么呢?

考察目标

很显然,这是一道没有标准答案的面试题。

所以面试官问这个问题,无非就是考察你的技术积累和总结能力。

因为只有对一个技术的理解足够深,才能够很好的表达出来。

就像我们总结自己逝去的青春,虽然没有华丽的辞藻但是那些喜怒哀乐,我们总是能够表达得那么深刻。

问题解析

Nosql在现在并不是一个新词。

最早出现在1998年,那个时候对于Nosql的描述是一个轻量、开源不提供SQL功能的关系数据库。

到了2009年,重新对Nosql做了定义,这时的Nosql主要指非关系型、分布式、不提供ACID的数据库设计模式。

注意,它不是一个技术,而是一种设计理念。

随着MongoDB、Redis这一类的技术被逐步广泛,大家对于Nosql的理解才越来越透彻。

本质上来说,Nosql其实是为了弥补关系数据库在某些特定场景下性能较差的短板。

在高并发流量下网站性能的提升扮演了非常重要的角色。

针对不同的业务数据类型,Nosql也有不同的实现方式。

比如针对K-V存储的Redis,针对文档存储的MongoDB、针对列式存储的ClickHouse、针对图形存储的Neo4j,以及以时间为纬度的时序数据存储InfluxDB等。

因此,Nosql既可以理解成Non-SQL,也可以理解成Not only SQL。

高手

NoSQL可以理解成Not Only SQL

它其实是相对于传统的关系型数据库而言的一种非关系型数据存储的统称。

在分布式高并发的架构下,传统的关系数据库存在短板,比如性能、扩展性、大数据量的存储。

同时随着网站流量的增长,这些短板严重影响了网站性能造成业务的影响。

而NoSQL强调的是非关系型、分布式、可扩展性、性能等特征的设计模式。

从语义上来看,它可以不需要通过标准化的SQL语句来获取数据。

意味着不需要固定的二维表格模式以及元数据的存储,可以有效的避免SQL以及表关联查询的操作。

从而更好的实现水平扩展的特性。

同时,针对不同类型的数据,可以灵活的使用更加高效的存储形态,是的性能跟进一步得到提升。

以上就是我的理解。

如果你喜欢我的作品,记得点赞收藏加关注

另外,我将所有Java面试系列制作成了完整的面试文档。它的便捷之处在于,可以通过检索的方式,找到你想要的面试题,目前已经更新180期,总计超过15W字!

【想领取面试文档的小伙伴可以点击文章底部名片无套路免费赠送给大家!】

需要高手面试文档面试文档的小伙伴可以扫描下方二维码
↓↓↓↓↓↓↓↓↓↓↓↓↓

相关文章:

  • React初体验-Hello React的组件化方式-React入门小案例
  • 【毕业设计】树莓派单片机墨水屏电子日历系统 - 物联网 嵌入式
  • SEH异常之编译器原理探究
  • UniApp调用SDK原生接口
  • 【数字信号调制】基于PCM编码和QAM调制系统附matlab代码
  • 数字科技对零售业的改造,链动2+1模式系统如何颠覆传统?
  • 集成随机惯性权重和差分变异操作的樽海鞘群算法-附代码
  • A Lightweight and Accurate Recognition Framework for Signs of X-ray Weld Images
  • 【小程序】IDEA实现qq邮件的发送
  • Selenium入门之java爬虫入门
  • 基于C#的五子棋游戏设计
  • 记一次线上环境排查错误过程
  • 快速文本分类(FastText)
  • 【填坑】ESP32 bootloader初探(下)
  • Addflow for WPF 2019 Crack
  • Angular4 模板式表单用法以及验证
  • Apache的80端口被占用以及访问时报错403
  • Elasticsearch 参考指南(升级前重新索引)
  • Electron入门介绍
  • js面向对象
  • MobX
  • Node 版本管理
  • rc-form之最单纯情况
  • Sequelize 中文文档 v4 - Getting started - 入门
  • Vue.js-Day01
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 闭包,sync使用细节
  • 让你成为前端,后端或全栈开发程序员的进阶指南,一门学到老的技术
  • 算法---两个栈实现一个队列
  • 鱼骨图 - 如何绘制?
  • TPG领衔财团投资轻奢珠宝品牌APM Monaco
  • 阿里云ACE认证学习知识点梳理
  • 从如何停掉 Promise 链说起
  • 带你开发类似Pokemon Go的AR游戏
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • # 20155222 2016-2017-2 《Java程序设计》第5周学习总结
  • #stm32整理(一)flash读写
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (12)目标检测_SSD基于pytorch搭建代码
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (TOJ2804)Even? Odd?
  • (差分)胡桃爱原石
  • (四)Linux Shell编程——输入输出重定向
  • (五)网络优化与超参数选择--九五小庞
  • (一)使用Mybatis实现在student数据库中插入一个学生信息
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (轉貼) UML中文FAQ (OO) (UML)
  • .aanva
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • /etc/sudoers (root权限管理)
  • @font-face 用字体画图标
  • @Repository 注解
  • @RequestBody详解:用于获取请求体中的Json格式参数
  • @基于大模型的旅游路线推荐方案