面试疑难点解析——Java数据库开发(一)

简介: 阿里云再offer 5000人,数据库人才求贤若渴!7月9日 19:00,阿里云数据库事业部的两位技术大咖在线直招10多个岗位,想要进入阿里云吗?快来投递简历吧:https://developer.aliyun.com/special/offerday01

图片无法显
点击图片或戳我查看详情和投简历

当面试官提问数据库优化及NoSQL使用场景时,该如何回答?

数据库优化

在现实的开发环境之中所谓的数据库优化是不存在的,实际上所谓数据库的优化有很多层次。

1.语句上的优化:尽量不要使用多表查询,不要频繁地使用各种神奇的统计查询,如果需要,建议使用子查询来代替(子查询只是一种折中方案,不是最好的,只是相对的,当数据量大的时候,所有认知的规则全部都将改变)。

2.数据库的优化只能够体现在查询上,而这个查询还是在认知范围内的数据量,例如使用索引,一旦使用索引,就不能够进行频繁的修改,例如:在主键往往会设置索引,但是从另一个角度,数据不应该进行物理删除,而要进行逻辑删除,只是为了保证索引不被重新创建;
-空间换时间,时间换空间:你的数据是否需要进行同步处理操作。

3.当存在有多个RPC业务端的时候,可以考虑进行垂直拆库的做法,这个时候只能够按照功能进行拆分,这个是需要强大的接口技术支持的。

4.当分库也无法解决问题的时候就需要考虑数据库的水平拆分问题。(认知范围内的唯一可以使用的最后方案)

5.如果需要保证强大的查询性能,那么就需要再次引入搜索引擎的概念进行分词处理。


NoSQL使用场景

首先需要确认一个问题:NoSQL能做什么?

在现在的开发领域中,NoSQL可以实现文档存储(BSON、JSON)、缓存存储、图像缓存(图像搜索),但是对于NoSQL的具体应用场景完全要根据实际业务来讲。

1.在传统的开发之中,由于经常要使用到多表查询,性能很差,所以可以将一些经常显示的数据整理到文档型的NoSQL数据库(MongoDB),但是现在这个文档型的NoSQL使用越来越少,可以忽略;

2.缓存型:例如在进行分布式开发的时候session存储,做一些临时的数据,例如:购物车、短信验证码等,现在使用最多的缓存数据库就是Redis(可以保存在磁盘,断电后数据可以被保留下来)。

-使用Redis实现消息队列,可以使用更加高级的RabbitMQ、Kafka实现更方便;

-优点:可以实现每秒近乎10W次的读写处理。

更多专业知识,面试技巧就在阿里云开发者社区,持续更新中……
感谢浏览~
本内容来源于阿里云大学-Java面试技巧

相关文章
|
5天前
|
安全 前端开发 Java
10:基于Servlet模拟用户登录功能的实现与解析-Java Web
10:基于Servlet模拟用户登录功能的实现与解析-Java Web
20 3
|
7天前
|
供应链 Java API
Java 8新特性解析及应用区块链技术在供应链管理中的应用与挑战
【4月更文挑战第30天】本文将深入探讨Java 8的新特性,包括Lambda表达式、Stream API和Optional类等。通过对这些新特性的详细解析和应用实例,帮助读者更好地理解和掌握Java 8的新技术。
|
7天前
|
Java 关系型数据库 测试技术
Java代码一键生成数据库文档(案例详解)
Screw是一个自动化数据库文档生成工具,能根据数据库表结构快速生成简洁、多格式(HTML、Word、Markdown)的文档,支持MySQL、MariaDB等多数据库。它使用Freemarker模板,允许用户自定义样式。依赖包括HikariCP数据库连接池和对应JDBC驱动。通过在Java代码或Maven插件中配置,可方便生成文档。示例代码展示了如何在测试用例中使用Screw。文档效果依赖于数据库中的表和字段注释。
|
7天前
|
安全 Java API
Java 8新特性深度解析
【4月更文挑战第30天】本文将深入探讨Java 8的新特性,包括Lambda表达式、Stream API、Optional类等,以及这些新特性如何改变我们编写Java代码的方式。
|
8天前
|
算法 Java
【Java探索之旅】运算符解析 算术运算符,关系运算符
【Java探索之旅】运算符解析 算术运算符,关系运算符
16 0
|
8天前
|
Java 关系型数据库 MySQL
【JDBC编程】基于MySql的Java应用程序中访问数据库与交互数据的技术
【JDBC编程】基于MySql的Java应用程序中访问数据库与交互数据的技术
|
8天前
|
存储 Java 大数据
JAVA:编程的艺术与实战解析
JAVA:编程的艺术与实战解析
18 2
|
8天前
|
Java 关系型数据库 MySQL
Java基础教程(20)-Java连接mysql数据库CURD
【4月更文挑战第19天】MySQL是流行的关系型数据库管理系统,支持SQL语法。在IDEA中加载jar包到项目类路径:右击项目,选择“Open Module Settings”,添加库文件。使用JDBC连接MySQL,首先下载JDBC驱动,然后通过`Class.forName()`加载驱动,`DriverManager.getConnection()`建立连接。执行CRUD操作,例如创建表、插入数据和查询,使用`Statement`或`PreparedStatement`,并确保正确关闭数据库资源。
|
9天前
|
Java 数据库
Java实现超市管理系统(含数据库)
Java实现超市管理系统(含数据库)
|
10天前
|
设计模式 Java
Java 设计模式:工厂模式与抽象工厂模式的解析与应用
【4月更文挑战第27天】设计模式是软件开发中用于解决常见问题的典型解决方案。在 Java 中,工厂模式和抽象工厂模式是创建型模式中非常核心的模式,它们主要用于对象的创建,有助于增加程序的灵活性和扩展性。本博客将详细介绍这两种模式的概念、区别以及如何在实际项目中应用这些模式。
15 1

推荐镜像

更多