Java面试大全(2020年版)51-60

51.为何要进行sql优化

因为sql语句是对数据库进行操作的惟一途径,对数据库系统的性能起着决定性的作用,所以优化它,能够提高访问速度。

52.如何找出需要优化的sql语句呢?

  • 开启慢查询日志 :当一条sql执行超时时,mysql可以将慢的sql记录到日志中。
  • 使用执行计划(explain)分析慢的原因:执行计划能将 sql语句发送给mysql评估执行该条sql需要经历哪些步骤消耗多少资源
  • show profile: 主要是用来查询SQL在mysql服务器里面的执行细节和生命周期情况
  • 数据库服务器参数性能调优

53.数据库的表结构优化

  • 在创建表的属性时,要选择最合适的字段
    Mysql是一种关系型数据库,可以很好地支 持大数据量的存储,但是一般来说,数据库中的表越小,在它上面执行的查询也就越快。因此,在创建表的时候,为了获得更好的性能。
  • 尽量把字段设置为NOT NULL
    在可能的情况下,尽量把字段设置为NOT NULL,这样在将来执行查询的时候,数据库不用去比较NULL值。
  • 创建索引
    • 索引是对数据库表中一个或多个列的值进行排序的结构.使用索引查询可以避免全表扫描。
    • 创建索引的语句: create index 创建名 on 表名字(字段名)。
    • 如果想查看当前表是否需要优化可以查看数据库中查询效率:

54.数据库的存储引擎

MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。
查看数据库的存储引擎:SHOW VARIABLES LIKE ‘storage_engine’
常见的三种存储引擎

  • InnoDB存储引擎
  • MyISAM存储引擎
  • MEMORY存储引擎

55.常用函数:

  • 数学函数:数学函数主要用于处理数字,包括整型、浮点数等。
  • 字符串函数:字符串函数是MySQL中最常用的一类函数,字符串函数主要用于处理表中的字符串。
  • 日期时间函数:MySQL的日期和时间函数主要用于处理日期时间。
  • 系统信息函数:系统信息函数用来查询MySQL数据库的系统信息。
  • 加密函数:加密函数是MySQL用来对数据进行加密的函数。

56.数据库三范式是什么?

  • 第一范式(1NF):字段具有原子性,不可再分。所有关系型数据库系统都满足第一范式)
  • 第二范式(2NF):第二范式(2NF)是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式(1NF)。
    (要求数据库表中的每个实例或行必须可以被惟一地区分。通常需要为表加上一个列,以存储各个实例的惟一标识。这个惟一属性列被称为主关键字或主键。第二范式(2NF)要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性,如果存在,那么这个属性和主关键字的这一部分应该分离出来形成一个新的实体,新实体与原实体之间是一对多的关系。为实现区分通常需要为表加上一个列,以存储各个实例的惟一标识。简而言之,第二范式就是非主属性非部分依赖于主关键字。)
  • 第三范式的要求:满足第三范式(3NF)必须先满足第二范式(2NF)。简而言之,第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。
    所以第三范式具有如下特征:
    1).每一列只有一个值
    2).每一行都能区分。
    3).每一个表都不包含其他表已经包含的非主关键字信息。

57.说出一些数据库优化方面的经验?

用PreparedStatement 一般来说比Statement性能高:一个sql 发给服务器去执行,涉及步骤:
语法检查、语义分析, 编译,缓存有外键约束会影响插入和删除性能,如果程序能够保证数据的完整性,那在设计数据库时就去掉外键。(比喻:就好比免检产品,就是为了提高效率,充分相信产品的制造商)表中允许适当冗余;sql语句全部大写,特别是列名和表名都大写。

58.Dubbo是什么?

DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC(远程过程调用协议)远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架。
说白了就是个远程服务调用的分布式框架。其核心部分包含:

  • 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。
  • 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。
  • 自动发现: 基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。

59.为什么要用Dubbo(优点和好处),解决什么问题?

Dubbo提供了三个关键功能:基于接口的远程调用,容错与负载均衡,服务自动注册与发现。

  • 透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。
  • 软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少单点。
  • 服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑添加或删除服务提供者。
原创文章 52 获赞 3 访问量 2445

猜你喜欢

转载自blog.csdn.net/m0_47572402/article/details/106100812
今日推荐