重庆农商行面试复盘(凉经)
面的数据服务开发岗,凉凉
自我介绍结束之后,是问对数据开发的看法,主要做什么
答偏了,回答是业务数据分析,然后面试官分析了下技术层面(大数据开发+java后端)
数据库的优化
【
使用索引:索引是提高数据库性能的常用方法,它可以令数据库服务器以比没有索引快得多的速度检索特定的行,尤其是在查询语句当中包含有MAX(),MIN()和ORDERBY这些命令的时候,性能提高更为明显。
】
inner join 和left join区别
【
1.left join是返回右边全部记录,右表不满足匹配条件的记录返回对应行返回null,那么单纯的对比逻辑运算量的话,inner join是需要返回2个表的交集部分,left join多返回一部分左表没有返回的数据
2. left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
inner join(等值连接) 只返回两个表中联结字段相等的行
】
数据库有哪几种锁
【
共享锁、排他锁、行锁、表级锁、行级锁以及页面锁
1.共享锁(Shared Lock,也叫S锁)
共享锁(S)表示对数据进行读操作,因此多个事物可以同时为一个对象加锁。这个事物释放锁之前,其他事物不能对该对象进行更新操作。
2.排他锁(Exclusive Lock,也叫X锁)
排他锁表示对数据进行写操作,如果一个事物给一个对象添加了排他锁,其他事物就不能给他加其他锁。
3. 行锁
行锁表示对一条记录加锁,只影响一条记录。通常用在DML语句中,如INSERT, UPDATE, DELETE等。
根据锁的级别或密度来划分,MySQL有三种锁的级别:页级、表级、行级。
1.表级锁
表级别的锁定是MySQL各存储引擎中最大颗粒度的锁定机制。该锁定机制最大的特点是实现逻辑非常简单,带来的系统负面影响最小。所以获取锁和释放锁的速度很快。由于表级锁一次会将整个表锁定,所以可以很好的避免困扰我们的死锁问题
使用表级锁定的主要是MyISAM,MEMORY,CSV等一些非事务性存储引擎
2.行级锁
行级锁定最大的特点就是锁定对象的颗粒度很小,也是目前各大数据库管理软件所实现的锁定颗粒度最小的。由于锁定颗粒度很小,所以发生锁定资源争用的概率也最小,能够给予应用程序尽可能大的并发处理能力而提高一些需要高并发应用系统的整体性能。
使用行级锁定的主要是InnoDB存储引擎
3.页面锁
页级锁定是MySQL中比较独特的一种锁定级别,在其他数据库管理软件中也并不是太常见。页级锁定的特点是锁定颗粒度介于行级锁定与表级锁之间,所以获取锁定所需要的资源开销,以及所能提供的并发处理能力也同样是介于上面二者之间。另外,页级锁定和行级锁定一样,会发生死锁。
使用页级锁定的主要是BerkeleyDB存储引擎。
】
余额应该用哪种数据类型
【
一般使用Decimal,Mysql数据库提供Decimal和Numric两种类型来修饰像金钱之类的需要极其精确的数据,例如 money DECIMAL(5,2) 其中5(precision)代表将被用于存储值的总的小数位数,而2(scale)代表将被用于存储小数点后的位数,money的取值范围是 -999.99 to 999.99
】
职业规划
答了换了个面试官,分析应该从地域、企业类型等方向回答职业规划(跟我认知不太一样)
还做了个压力测试(?),问觉得今天表现怎样,问题是什么
分析了下,从秋招计划来说,六大行等银行,没有几家了