专栏首页AVAJjava后端开发面经_数据库相关

java后端开发面经_数据库相关

小姐姐:怎么理解感情中的付出和回报?

你答:有这样一个故事,讲的是一个小男孩和一个小女孩,这个小男孩呢,用很多好玩石头,而这个小女孩呢,有好多好吃的糖果,有一天,他们相互约定:小男孩用所有的石头交互小女孩所有的糖果。到了交换的那一天,小女孩带上了所有的糖果,而小男孩自己偷偷留下了一些石头,就这样他们交换了。这天晚上啊,小女孩睡的特别踏实,而小男孩呢,总是睡不着,他总在想,小女孩是不是也留下了一些糖果呢?

感情呢,往往就是这样。但是:如果我们自己都没有真心实意的付出,那又怎么能去强求别人,揣测别人呢?

1 自我介绍(您好(人多就说大家好),很荣幸有机会参加此次面试,希望我今天能有好的表现,现在请允许我介绍一下自己:我叫变坏,今年18岁,毕业于牛客大学软件工程专业(或者说是微信大学软件工程专业的应届生),在大学期间专业课学习了java这门编程语言,自己在网上也学习了一些相关的技术,在校期间自己也曾和同学使用java开发过一些项目,在学校也曾考取过相关的证书,获得过一些比赛的奖,大学期间还担任过课代表,由于毕业将近,本人决定踏上社会道路,因此在牛客平台看到贵公司的招聘,在此之前也曾在网上了解过贵公司(不要去问公司业务,网上都可以查的),巴拉巴拉吹一吹。从以上简单的自我介绍里,我希望公司能给我一个展示自己能力的机会)

2 触发器的作用(触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。)

3 存储过程优缺点(创建一次,多次使用。调用简单,可提供部程序调用。缺点:移植性差)

4 索引作用、优缺点、底层(优点:加速对数据的索引。缺点:降低数据库录入速度,占空间,后期维护等,B+树)

5 事务的特性、并发问题、隔离级别(ACID:A原子性、C一致性、I隔离性、D持久性。并发问题:脏读、不可重复读、幻读。隔离级别:读未提交、读已提交、可重复读、串行化)

6 视图和游标(视图:是一种虚拟的表,具有和物理表相同的功能。游标:是对查询出来的结果集作为一个单元来有效的处理)

7 视图优缺点(优点:选择性的读取数据库、通过简单查询的得到一些原本需要复杂查询才能得到的结果、维护数据的独立性,试图可从多个表检索数据、对于相同的数据可产生不同的视图。缺点:查询视图时,必须把视图的查询转化成对基本表的查询)

8 数据库查询语句很慢,如何优化(索引、优化sql尽量不做全表查询、减少表关联、优化查询字段等等)

9 数据库三范式(1NF:确保每一列的原子性 2NF:非键字段必须依赖于键字段 3NF:在1NF基础上,除了主键以外的其它列都不传递依赖于主键列,或者说:任何非主属性不依赖于其它非主属性

(在2NF基础上消除传递依赖))

10 union和union all有什么不同(union:合并去重、union all :只是合并,一般没有重复数据用union all 因为更快)

11 SQL语言共分为四大类(数据查询语言DQL:select /from/where,数据操纵语言DML:insert/update/delete,数据定义语言DDL:create/drop/truncate/alert,数据控制语言DCL:grant/rollback)

12 drop、delete、truncate区别(不带where的delete和truncate只删除表的数据,不会删除表的结构。速度drop> truncate > delete,delete是dml要等事务生效 、drop和truncate属于ddl理解生效)

13 数据库的乐观锁和悲观锁(乐观锁:假设不会发生并发冲突,只在提交操作时检查是否违反数据完整性。悲观锁:假定会发生并发冲突,屏蔽一切可能违反数据完整性的操作)

14 mysql设置隔离级别(语句:set session transaction isolation level read uncommitted 可选参数:READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE)

15 SQL约束(NOT NULL不为空、UNIQUE唯一、PRIMARY KEY主键、FOREIGN KEY外键、CHECK控制字段范围)

16 Mysql数据库引擎MyISAM和InnoDB(MyISAM:表锁、不支持事务、不支持外键、全文索引、快、内存利用低,InnoDB:行锁、外键、事务)

17 varchar和char(varchar可变长度、char长度固定)

18 数据库锁分类(按锁的粒度分:表锁、行锁、页级锁 。按锁的级别划分:共享锁、排他锁 。按加锁方式分:自动锁、显示锁。按操作划分:DML锁、DDL锁 。按使用方式分:悲观锁、乐观锁)

19 常用数据库默认隔离级别(mysql:可重复读 oracle:读已提交 SQLServer:读已提交)

20 Oracle高水位理解(Oracle段(segments)就像水库记录历史水位,一般不会下降,使用truncate命令可以置零)

21 内连接外连接区别(内:指连接结果仅包含符合连接条件的行,参与连接的两个表都应该符合连接条件 外:连接结果不仅包含符合连接条件的行同时也包含自身不符合条件的行。包括左外连接、右外连接和全外连接)

22 查询语句有like(尽量避免%XXX%,用不到索引,%在前面不能用到索引,如%ABC不能用索引,而ABC%能用索引 )

23 mysql数据库优化(explain写的SQL、只要一行数据用limit 1、使用enum而不是varchar、固定长度的表会更快、分库分表)

24 oracle数据库优化(调整数据结构设计、调整操作系统参数、调整数据库sql语句、调整服务器内存分配、调整硬盘I/O)

本文分享自微信公众号 - AVAJ(gh_ccf596cb9b66)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 蛋白质组学第5期搜库软件之 MaxQuant 再介绍

    第三期理论教程结尾时讲到蛋白质三大元素整合以及搜库过程是理论谱图和实际谱图的匹配过程

    生信技能树
  • ​知识图谱里的知识存储:neo4j的介绍和使用

    一般情况下,我们使用数据库查找事物间的联系的时候,只需要短程关系的查询(两层以内的关联)。当需要进行更长程的,更广范围的关系查询时,就需要图数据库的功能。

    磐创AI
  • SQL注入

    SQL注入自诞生以来以其巨大的杀伤力而闻名于世。典型的SQL输入的例子就是当对SQL进行字符串拼接操作的时候,直接使用未加转义的用户输入内容作为变量,比如下面的...

    用户4143945
  • 史上最全存储引擎、索引使用及SQL优化的实践

    整个MySQL Server由以下组成 : Connection Pool :连接池组件 Management Services & Utilities...

    海仔
  • 记一次渗透过程中用sqlmap写shell

    这里看到了一个sa用户,嗯,有亮点!不过暂时也用不到,后面讲到提权的时候会提到sa

    HACK学习
  • 堆叠注入详解

    Stacked injections(堆叠注入)从名词的含义就可以看到应该是一堆 sql 语句(多条)一起执行。而在真实的运用中也是这样的, 我们知道在 my...

    HACK学习
  • 绕不过去的Python连接MySQL数据库

    不管是机器学习、web开发或者爬虫,数据库都是绕不过去的。那么今天我们就来介绍Python如何Mysql数据库进行连接以及数据的交换。主要分为以下几个方面:

    算法工程师之路
  • Access-SQL手工注入实战

    经过反复尝试,这里可以利用“+”替换空格和大写字母绕过WTS-WAF,并且此waf没有过滤and。

    HACK学习
  • 对某钓鱼网站的一次渗透测试

    周末在某个QQ群偶然看到这个钓鱼网站:http://gggggg.cn (声明:本文中出现的域名、IP均被替换,并非真实存在,请勿测试),于是开始对该网站进行渗...

    HACK学习
  • SQLi_Labs通关文档【1-65关】

    为了不干扰自己本机环境,sql-lab我就用的docker跑起来的,搭建也非常简单,也就两条命令

    HACK学习

扫码关注云+社区

领取腾讯云代金券