博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java web轻量级开发面试教程读书笔记:数据库方面,如何准备面试
阅读量:6317 次
发布时间:2019-06-22

本文共 1183 字,大约阅读时间需要 3 分钟。

如果在面试或与资深人事交流的过程中,你能有效合理地展示出本章所给出的一些知识点,那么对你的评价就会是“对数据库有深入了解”,甚至能加上“有设计数据表的经验”,即便你说有过3年商业项目数据库操作的经验,那么别人也能相信。

相反,如果一个工作经验满3年的程序员或许动手编程能力不差,但无法在交流沟通过程中证明这点,或者干脆不知道怎么证明,那么对他的评价往往可能是“数据库层面,有过商业项目的经验,但只会些基本的增删改查(顶多再加上会视图存储过程等技术),无法独立担当数据库方面的工作”。

下面列些数据库方面的常见面试问题,大家可以以此来衡量一下对本章知识点的掌握程度。

问题1,你有没有建表的经验?建表时你是否会遵循三范式?

设计数据表时,需要权衡数据冗余和连接代价,详细内容请参考2.1.3节你的描述。

问题2,你有过哪些数据库的优化经验?

大家可以说用过索引,具体的知识点可以参考2.3节。

问题3,请你叙述一下不应该建索引的场景。

问题4,like语句会不会走索引?

问题5,索引的结构是什么?建索引会有什么代价?我们应该如何权衡要不要建索引?

关于上述三个问题,代价可以参考2.3节的描述。

问题6,事务隔离级别有哪些级别?具体的脏读,幻读和不可重复读的含义是什么?

参考2.4.4节的描述。

问题7,Statement和PreparedStatement对象有什么差别?

大家可以围绕预处理和批处理这两个角度来回答。

以下我们再列些数据库方面比较高级的知识点,这些知识点需要靠项目经验来沉淀,一般高级程序员能知道,而初学者或初级程序员未必知道,大家可以在面试时,找合适的机会说出来,这样面试官一定会对你刮目相看。

知识点1,在数据库编程时,尽量用try…catch…finally的代码结构,同时在finally里放置释放数据库连接等资源的代码,因为如果我们不主动地关闭数据库连接,这部分所占用的内存是无法被垃圾回收器(GC)主动回收的。

知识点2,为了提升数据库操作的性能,我会用到PreparedStatement来进行批处理操作,但每批执行的SQL语句的数量不能太多,否则会把缓冲区撑爆,一般每批是500条左右。

知识点3,通过PreparedStatement的预处理机制,我们可以有效地防止SQL注入。

 

更多内容请阅读 java web轻量级开发面试教程

https://baike.baidu.com/item/Java%20Web%E8%BD%BB%E9%87%8F%E7%BA%A7%E5%BC%80%E5%8F%91%E9%9D%A2%E8%AF%95%E6%95%99%E7%A8%8B/22038502?fr=aladdin

转载于:https://www.cnblogs.com/JavaArchitect/p/7434411.html

你可能感兴趣的文章
buildroot下查找外部编译器通过ext-toolchain-wrapper调用的参数
查看>>
iframe 在ie下面总是弹出新窗口解决方法
查看>>
android编译系统makefile(Android.mk)写法
查看>>
MD5源代码C++
查看>>
Eclipse 添加 Ibator
查看>>
Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义
查看>>
Python编程语言
查看>>
十四、转到 linux
查看>>
Got error 241 'Invalid schema
查看>>
ReferenceError: event is not defined
查看>>
男人要内在美,更要外在美
查看>>
为什么要跟别人比?
查看>>
app启动白屏
查看>>
Oracle 提高查询性能(基础)
查看>>
学习知识应该像织网一样去学习——“网状学习法”
查看>>
Hadoop集群完全分布式安装
查看>>
QString,char,string之间赋值
查看>>
我的友情链接
查看>>
Nginx+mysql+php-fpm负载均衡配置实例
查看>>
MySql之基于ssl安全连接的主从复制
查看>>