我们参加Java培训学习都是希望能够毕业后找到满意的工作,然而培训机构只是推荐就业,我们仍然需要进行面试,提高面试技术问答的正确率有助于增加面试官的满意度。本系列全面汇总了企业Java面试的技术问题,希望能够帮助大家。
本文列举的技术问题有:
- MySql 的存储引擎有哪些,区别是什么?
- 触发器的作用是什么?
- 存储过程的优缺点是什么?
- SQL 优化的具体操作什么?
更多Java面试技术问答后续会继续提供,想要一口气获得所有答案的小伙伴可以评论交流哦~
212、MySql 的存储引擎有哪些,区别是什么?
MySQL 常见的三种存储引擎为 InnoDB、MyISAM 和 MEMORY。
1、事务安全:
InnoDB 支持事务安全,MyISAM 和 MEMORY 两个不支持。
2、存储限制:
InnoDB 有 64TB 的存储限制,MyISAM 和 MEMORY 要是具体情况而定。
3、空间使用:
InnoDB 对空间使用程度较高,MyISAM 和 MEMORY 对空间使用程度较低。
4、内存使用:
InnoDB 和 MEMORY 对内存使用程度较高,MyISAM 对内存使用程度较低。
5、插入数据的速度:
InnoDB 插入数据的速度较低,MyISAM 和 MEMORY 插入数据的速度较高。
6、对外键的支持:
InnoDB 对外键支持情况较好,MyISAM 和 MEMORY 两个不支持外键。
213、触发器的作用是什么?
触发器是一种特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。
214、存储过程的优缺点是什么?
优点:
1)存储过程是预编译过的,执行效率高。
2)存储过程的代码直接存放于数据库中,通过存储过程名直接调用,减少网络通讯。
3)安全性高,执行存储过程需要有一定权限的用户。
4)存储过程可以重复使用,可减少数据库开发人员的工作量。
缺点:移植性差
215、SQL 优化的具体操作什么?
1、尽量避免使用 select *,返回无用的字段会降低查询效率。
优化方式:使用具体的字段代替*,只返回使用到的字段。
2、尽量避免使用 in 和 not in,会导致数据库引擎放弃索引进行全表扫描。
优化方式:如果是连续数值,可以用 between 代替。如果是子查询,可以用 exists 代替。
3、尽量避免在字段开头模糊查询,会导致数据库引擎放弃索引进行全表扫描。
优化方式:尽量在字段后面使用模糊查询。
4、尽量避免进行 null 值的判断,会导致数据库引擎放弃索引进行全表扫描。
优化方式:可以给字段添加默认值 0,对 0 值进行判断。
更多Java面试技术问答后续会继续提供,想要一口气获得所有答案的小伙伴可以评论交流哦~