应届生、跳槽者必看JAVA面试题系列-数据库基础篇(二)
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
一: 前言
随着秋招临近,作者分享了一系列的面试题目,并承诺持续更新高质量内容。文章旨在鼓励每日学习和打卡,以帮助求职者获得理想的工作机会。
二: 面试题目
一: 乐观锁和悲观锁
悲观锁假设数据会被修改,因此在操作前会上锁,如数据库的行锁、表锁和Java的synchronized。乐观锁则认为数据不会被频繁修改,在更新时检查版本号等机制,适合读多写少的场景。
二: MVCC
多版本并发控制(MVCC)是数据库处理读写冲突的手段,通过历史记录版本来提高并发性能,并保持事务隔离级别。
三: varchar(50)的含义
50代表最多存放50个字符,不同长度的varchar在排序时占用内存不同。长度标识位使用1或2个字节以标识数据长度。
四: int(20)的含义
20是显示长度,对存储范围和计算无影响,主要用于显示时补零或者报表展示。
五: Drop、Truncate、Delete区别
Drop删除数据和定义,释放空间;Truncate删除数据,释放空间,不删除定义,不能Rollback;Delete行删除,空间不释放,可Rollback。
六: 触发器
触发器是特殊存储过程,由事件触发执行,用于维护数据完整性和一致性。
七: 存储过程
存储过程是预编译的SQL语句,优点是模块化设计,缺点是调试和移植困难。
八: 视图
虚拟表视图用于简化操作,增强安全性,特别是数据权限控制。需注意关联表修改限制和基本表约束。
九: 查询非连续主键的记录
非连续id主键记录查询需先确定起始位置的ID,再根据数据库类型使用特定的查询方式。
十: 表结构和数据复制
通过SQL语句,可以通过不同的方式复制表结构和数据,包括完全复制或仅复制结构。
三: 下篇预告
下篇文章将介绍数据库优化相关面试题目,如索引、回表、Explain关键字等。
四: 35家公司面试题目的大纲
文章最后提到未来会分享35家公司的面试题目大纲。
想要了解更多内容?
一个专注于技术学习和实践的社区,致力于为广大技术爱好者提供最前沿、最实用的IT技术分享和思考。 运营者:InfoQ(极客邦)&阿里云签约作者,CSDN、知乎、掘金等平台后端优质创作者。