Java高频面试题三

您所在的位置:网站首页 数据库数据量过大解决方案有哪些 Java高频面试题三

Java高频面试题三

2023-02-25 03:29| 来源: 网络整理| 查看: 265

Java高频面试题三 一、内连接和外连接的区别?join和union的区别?二、【SQL语句】分页怎么查?每页十条,第41条数据怎么查(可灵活变换问法)?三、【SQL语句】去重的SQL语句怎么写?四、【数据库优化】数据库的优化方案?一个SQL语句如何让他搜索变快?你们遇到的数据量最大的表是什么样,有多少条数据。五、【数据库优化】数据库的索引?如何避免索引失效?mysql索引有哪些,都各自有什么作用?什么是联合索引?什么样的字段适合创建索引?怎么创建一个索引?六、【数据库优化】慢日志怎么使用?MYSQL怎么发现动作速度慢的SQL语句?七、【数据库优化】分库分表是怎么做的?数据库分表分库后怎么保证其一致性?八、【事务】数据库事务是什么?讲一讲脏读和幻读?九、【事务】innoDb事务隔离级别有哪些?MySQL表为何产生死锁?如何避免死锁?十、【事务】事务的七种传播方式?事务的四大特性?十一、oracle与mysql的区别?mysql分页和oracle分页的区别?oracle与mysql的区别mysql分页和oracle分页的区别 十二、表、视图的区别;存储过程、函数的区别

一、内连接和外连接的区别?join和union的区别?

内连接:

两张表都符合连接,都进行保留数据。

外连接:

左外连接:左边表数据行全部保留,右边表保留符合连接条件的行。

右外连接:右边表数据行全部保留,左边表保留符合连接条件的行。

join

通过两张表的条件 相同的数据合成一个记录集。

union

是产生的两个记录集(字段要一样的)并在一起,成为一个新的记录集 。

二、【SQL语句】分页怎么查?每页十条,第41条数据怎么查(可灵活变换问法)? select * from 表名 limit (查第几条数据 - 1,每页显示几条数据); 分页sql格式是:select * from table limit (start - 1)*limit,limit; 其中start是页码,limit是每页显示的条数。 eg: 查询第1条到第10条的数据的sql是:select * from table limit 0,10; ->对应我们的需求就是查询第一页的数据:select * from table limit (1-1)*10,10; 查询第10条到第20条的数据的sql是:select * from table limit 10,20; ->对应我们的需求就是查询第二页的数据:select * from table limit (2-1)*10,10; 查询第20条到第30条的数据的sql是:select * from table limit 20,30; ->对应我们的需求就是查询第三页的数据:select * from table limit (3-1)*10,10; 三、【SQL语句】去重的SQL语句怎么写? distinct 只能在SELECT 语句中使用,对后面所有的字段的值统一进行去重。 单例 select distinct 重复值 from A //对A表的重复值去重然后显示 多列 select distinct 重复值1,重复值2 from A //对A表的重复值1和重复值2去重然后显示 group by select 字段 from 表名 group by 字段 row_number() over() select row_number() over(函数 字段) from 表名 四、【数据库优化】数据库的优化方案?一个SQL语句如何让他搜索变快?你们遇到的数据量最大的表是什么样,有多少条数据。 字段优化索引优化

索引优化可以使搜索变快

遇到最大的表是 Sass框架 他是saber一个线上的框架 里面有数据内容 里面对每一个框架都做了分类,对重复的字段做了字典 方便重复使用等等

五、【数据库优化】数据库的索引?如何避免索引失效?mysql索引有哪些,都各自有什么作用?什么是联合索引?什么样的字段适合创建索引?怎么创建一个索引?

数据库通过索引快速进行查找特定的数据信息

索引在创建表的时候就相当于给字段进行了排序不存在索引失效就是单纯的没有进行使用

> 主键索引:数据列不允许重复,不允许为NULL,一个表只能有一个主键。 > 唯一索引:数据列不允许重复,允许为NULL值,一个表允许多个列创建唯一索引。 > 普通索引:基本的索引类型,没有唯一性的限制,允许为NULL值。 > 全文索引:是目前搜索引擎使用的一种关键技术。

一个表上有两个或更多索引被称作联合索引

两表联查外键必须有索引 使用最多的要加索引 小字段可以加索引,文本等内容多不加索引

create index 索引名 on 表名(字段名) 索引名一般是 表名_字段名 六、【数据库优化】慢日志怎么使用?MYSQL怎么发现动作速度慢的SQL语句?

配置文件中添加 slow_query_log = 1

show variables like '%query%' 七、【数据库优化】分库分表是怎么做的?数据库分表分库后怎么保证其一致性?

当数据量大的时候将重复的值取出,创建一个新的数据结构

分布式事务主要目的是解决数据一致性问题,XA强一致,但是吞吐量太低,不利于高并发场景。 柔性事务不保证强一致性,但是通过补偿实现最终一致性,常见的补偿有重试补偿、调度补偿、人工补偿等。

八、【事务】数据库事务是什么?讲一讲脏读和幻读?

数据库事务就是处理量大的数据的方式,比如一个用户他有很多事务,比如文章 邮件 基本资料等等

脏读 读取未提交数据 幻读 前后多次读取,数据总量不一致

九、【事务】innoDb事务隔离级别有哪些?MySQL表为何产生死锁?如何避免死锁? 读未提交(READ UNCOMMITTED) 读提交(READ COMMITTED) 可重复读(REPEATABLE READ) 串行化(SERIALIZABLE)

当两个资源都在进行释放锁的时候 有可能出现循环不一致出现死锁

不满足死锁发生条件,就不会出现死锁,出现后通过挂起不必要的进程和方法来解决死锁让其从死锁状态解除

十、【事务】事务的七种传播方式?事务的四大特性? (rui kuai er de) REQUIRED(必需的) 有事务就加入 没有就创建 (si pa si) SUPPOPTS(支持的) 有事务就加入 没有事务就不创建 (man de te rui) MANDATORY(强制的) 有事务就加入 没有事务抛出异常 (rui kuai er s) New REQUIRES_NEW(要求 NEW) 创建事务 有事务挂起 Not (si po dei) NOT_SUPPORTED(不 支持的) 如果有事务就把事务挂起 以非事务的方式运行 (nai wer) NEVER(从不的) 没有事务 有事务抛出异常 (nai si de) NESTED(嵌套的) 有事务就嵌套事务 没有就创建 原子性:要么全部完成,要么全部不完成,要是失败就会回滚到没有执行的状态一致性:从事物开始到结束数据没有造成破坏。隔离性:一个时间段内有两个相同的事物进行相同的功能就会造成事务的混淆所以使用串行化和序列化可以解决在一个时间段只执行一个事务持久性:事务完成后数据不会丢失 也不会被回滚 会永远的进行保留。 十一、oracle与mysql的区别?mysql分页和oracle分页的区别? oracle与mysql的区别 1、Oracle 是大型数据库,而MySQL是中小型数据库。但是MySQL是开源的,Oracle是收费的 2、Oracle 的内存占有量非常大,而mysql非常小 3、MySQL 支持主键自增长,插入时会自动增长。Oracle主键一般使用序列。 4、MySQL分页用limit关键字,而Oracle使用rownum字段表明位置 5、MySQL中0、1判断真假,Oracle中true false 6、MySQL中命令默认commit,但是Oracle需要手动提交 7、MySQL在windows环境下大小写不敏感,在linux环境下区分大小写,Oracle不区分

详情跳转:http://t.csdn.cn/jQCzG

mysql分页和oracle分页的区别

mysql 分页使用 limit,oracle 分页得借助 rownum 关键字

十二、表、视图的区别;存储过程、函数的区别

表可以进行修改结构等数据会对表产生影响 但是视图不会对表的数据造成影响

标识符不同 存储过程procedure;函数function构造过程没有返回结果 但是可以通过参数来实现返回结果 函数必要有返回结果存储过程通过call来调用 函数会使用select来调用通过in out参数 存储过程比函数更加的灵活 可以返回多个结果


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3