新书出版 |《MySQL程序员面试笔试宝典》
Tags: ASMDB宝MySQLNoSQLOraclerac书籍小麦苗
书名:《MySQL程序员面试笔试宝典》
作者:小麦苗
定价:59.00元
出版社:机械工业出版社
出版时间: 2020年3月
ISBN: 9787111644408
豆瓣:https://book.douban.com/subject/35017272/
购买连接:https://mp.weixin.qq.com/s/Vm5PqNcDcITkOr9cQg6T7w
内容简介:
数据库面试笔试系列书籍包括《Oracle数据库面试笔试宝典》、《数据库程序员面试笔试宝典》、《数据库程序员面试笔试真题库》和《数据库面试笔试真题与解析》。这几本书各有侧重点,读者可以根据自己的喜好和需求进行购买。其中,《Oracle数据库面试笔试宝典》主要是针对Oracle数据库进行讲解,还包括一些数据库的基础内容;《数据库程序员面试笔试宝典》主要是从通用型角度考虑,包括了数据库基础内容、Oracle、MySQL、SQL Server、NoSQL和一些OS及存储方面的内容;《数据库程序员面试笔试真题库》中包含了20套各大名企的数据库工程师的笔试题;《数据库面试笔试真题与解析》主要是从各大名企数据库面试笔试题中挑选一些比较重要的真题进行详解。这几本书中的部分内容是重复的,请读者根据自己需要可以选择性的购买。书中大部分内容在我博客上都有相关的连接,个别深入内容,读者可以参考我的博客进行阅读。
作者简介:
网名“小麦苗”,甘肃庆阳人,中国科学技术大学软件工程硕士,获得计算机四级数据库工程师认证,获得OCM大师认证,长期从事Oracle数据库的研究,具有丰富的开发和维护经验,兴趣爱好广泛,热衷技术分享。个人QQ:646634621,个人微信公众号:DB宝
前言
程序员求职始终是当前社会的一个热点,而市面上有很多关于程序员求职的书籍,例如《程序员代码面试指南》、《剑指offer》、《程序员面试笔试宝典》、《Java程序员面试笔试宝典》、《编程之美》、《编程珠玑》等,它们都是针对基础知识的讲解,各有侧重点,而且在市场上反映良好,但是,我们发现,当前市面上没有一本专门针对Oracle程序员的面试笔试宝典,很多读者朋友们向我们反映,他们希望有一本能够详细剖析面试笔试中数据库相关知识的图书,虽然网络上有一些IT企业的数据库面试笔试真题,但这些题大都七零八凑,毫无系统性可言,而且绝大多数题目都是一些博主自己做的,答案简单,准确性不高,即使偶尔答案正确了,也没有详细的讲解,这就导致读者做完了这些真题,根本就不知道自己做得是否正确,完全是徒劳。如果下一次这个题目再次被考查,自己还是不会。更有甚者,网上的答案很有可能是错误的,此时甚至还会误导读者。
针对这种情况,本书创作团队经过精心准备,从互联网上的海量数据库面试笔试真题中,选取了当前顶级企业(包括微软、百度、腾讯、阿里巴巴、360、小米等)的面试笔试真题,挑选出其中最典型、考查频率最高、最具代表性的真题,做到难度适宜,兼顾各层次读者的需求,同时对真题进行知识点的分门别类,做到层次清晰、条理分明、答案简单明了。最终形成了这样一本《Oracle程序员面试笔试宝典》。本书特点鲜明,所选真题以及写作手法具有以下特点:
第一,考查率高:本书中所选真题全是数据库程序员面试笔试常考考点,例如数据库基础知识、操作系统、计算机网络、数据结构与算法、海量数据处理等。
第二,行业代表性强:本书中所选真题全部来自于顶级知名企业,它们是行业的风向标,代表了行业的高水准,其中绝大多数真题因为题目难易适中,而且具有非常好的区分度,通常会被众多中小企业全盘照搬,具有代表性。
第三,答案详尽:本书对每一道题目都有非常详细的解答,庖丁解牛,不仅告诉答案,还告诉读者同类型题目以后再遇到了该如何解答。
第四,分类清晰、调理分明:本书对各个知识点都进行了分门别类,这种写法有利于读者针对个人实际情况做到有的放矢,重点把握。
本书适合的读者对象主要有如下几类:
(1)刚毕业找工作的同学,及从其他岗位转数据库岗位的人员。
(2)面试Oracle DBA初中级工作的人员。
(3)面试Oracle开发工作的人员。
(4)面试初级MySQL和初级SQL Server管理工作的人员。
(5)Oracle运维人员。
(6)数据库爱好者。
阅读本书注意事项如下:
(1)由于篇幅原因,书中很多部分的实验内容、部分实用代码、部分结果或其他一些延伸性的知识,我都写在了随书pdf文件里,大家可以在pdf文件中阅读。还有部分内容不适合在pdf里展现的,我都写在了博客或微信公众号中,并且在pdf文件中给出了链接地址。读者若想了解更深层次的知识,可以去链接地址阅读。链接中给出的实验部分除非读者已经非常熟悉了,不然实验的内容需要读者亲自动手实践,以便更深刻理解其中的知识点。需要注意的是,这些延伸性的知识点有可能在面试中也会出现。例如,本书中讲解了ASMM和AMM的特性,但是并没有讲解有关大内存页的使用,而只是在小节后给出了相应的链接文章,但是,在一些高级DBA的面试中,面试官也有可能询问有关大内存页的知识。所以,对于有能力的读者,可以适当阅读研究一下这些知识点。
(2)数据库中的知识繁多而复杂,本书只针对一些常见的重要知识点进行分析,更多更细节的内容可以参阅相关的官方文档。
(3)本书中若没有特殊说明Oracle的版本的话,则默认实验版本为11.2.0.3。
感谢在我们成长道路上帮助我们的人,他们是父母、亲人、同事、朋友、同学等,无论我们遇到了多大的挫折与困难,他们对我们都能不离不弃,一如既往地支持与帮助我们,使我们能够开开心心地度过每一天。在此对以上所有人致以最衷心的感谢。
所有的成长和伟大,如同中药和老火汤,都是一个时辰一个时辰熬出来的,所有的好书,都是逐字逐句琢磨出来的。在技术的海洋里,我们不是创造者,但我们更愿意去当好一名传播者的角色,让更多的求职者能够通过本书的系统学习,找到一份自己满意的工作,实现自己的人生理想与抱负。
我们每个人的人生都是一场戏剧,我们每个人都要成为戏剧的主角,而不应该沦为别人戏剧的配角,所以,我们建议所有的求职者在求职的道路上,无论遇到了多大的困难,遭遇了多大的挫折,都不要轻言放弃,你们的母校可能不是“985”、“211”,你们的学历可能不是本科生、研究生,你们的专业可能也不是计算机相关,但这些都不要紧,只要认真努力,立志成为一名程序员,以我们辅导过的成千上万的求职者经验而言,百分之九十以上的企业是完全可以求职成功的。请记住:在这个世界上,没有人可以让你仰视,除非你自己跪着。
本书目录
前言
上篇 面试笔试经验技巧篇
第1章 求职经验分享 2
1.1 踩别人没有踩过的坑,走别人没有走过的路 2
1.2 只要肯钻研,就能求职成功 3
1.3 普通DBA的逆袭经验 4
第2章 数据库程序员的求职现状 6
2.1 当前市场对于数据库程序员的需求如何?待遇如何? 6
2.2 数据库程序员有哪些可供选择的职业发展道路? 7
2.3 当企业在招聘时,对数据库程序员通常有何要求? 7
2.4 数据库程序员的日常工作是什么? 9
2.5 要想成为一名出色的数据库程序员,需要掌握哪些必备的知识? 10
2.6 各类数据库求职及市场使用情况 12
第3章 如何应对程序员面试笔试? 14
3.1 如何巧妙地回答面试官的问题? 14
3.2 如何回答技术性问题? 15
3.3 如何回答非技术性问题? 17
3.4 在被企业拒绝后是否可以再申请? 17
3.5 如何应对自己不会回答的问题? 18
3.6 如何应对面试官的“激将法”语言? 18
3.7 如何处理与面试官持不同观点这个问题? 19
3.8 什么是职场暗语? 19
下篇 面试笔试经验技巧篇
第4章 数据库基本理论 24
4.1 什么是范式和反范式? 24
4.2 事务的概念及其4个特性是什么? 35
4.3 事务的常见分类有哪些? 36
4.4 什么是XA事务? 37
4.5 事务的4种隔离级别(Isolation Level)分别是什么? 38
4.6 Oracle、MySQL和SQL Server中的事务隔离级别分别有哪些? 40
4.7 什么是CAP定理(CAP theorem)? 43
第5章 基础部分 45
5.1 MySQL数据库有什么特点? 45
5.2 如何确定MySQL是否处于运行状态?如何开启MySQL服务? 46
5.3 如何获取表内所有列的名称和类型? 47
5.4 如何创建表?如何删除表? 48
5.5 如何创建和删除数据库? 52
5.6 如何查看当前数据库里有哪些用户? 53
5.7 如何查看创建的索引及索引类型等信息? 53
5.8 如何查看数据库的版本、当前登录用户和当前的数据库名称? 54
5.9 MySQL有哪些常用日期和时间函数? 55
5.10 MySQL有哪些数据类型? 57
5.11 MySQL中limit的作用是什么? 69
5.12 如何对一张表同时进行查询和更新? 70
5.13 MySQL中如何在表的指定位置添加列? 70
5.14 MySQL中LENGTH和CHAR_LENGTH的区别是什么? 71
5.15 函数FROM_UNIXTIME和UNIX_TIMESTAMP的作用分别是什么? 71
5.16 真题 72
第6章 维护 79
6.1 在MySQL中,如何查看表的详细信息,例如存储引擎、行数、
更新时间等? 79
6.2 如何管理MySQL多实例? 81
6.3 什么是间隙(Next-Key)锁? 83
6.4 MySQL有哪些命令可以查看锁? 83
6.5 MySQL中SQL Mode的作用是什么? 91
6.6 什么是MySQL的套接字文件? 94
6.7 如何查看和修改系统参数? 95
6.8 查看当前使用的配置文件my.cnf的方法和步骤有哪些? 97
6.9 MySQL有哪几类日志文件? 99
6.10 MySQL支持事务吗? 105
6.11 如何提高MySQL的安全性? 107
6.12 什么是MySQL的复制(Replication)? 108
6.13 Oracle和MySQL中的分组(GROUP BY)问题 110
6.14 MySQL的分区表 115
6.15 MySQL有几种存储引擎(表类型)?各自有什么区别? 117
6.16 如何批量更改MySQL引擎? 128
6.17 MySQL InnoDB引擎类型的表有哪两类表空间模式?它们各有什么
优缺点? 129
6.18 MySQL有哪几个默认数据库? 130
6.19 MySQL区分大小写吗? 132
6.20 MySQL中的字符集 132
6.21 如何解决MySQL中文乱码问题? 136
6.22 MySQL原生支持的备份方式及种类有哪些? 136
6.23 真题 139
第7章 索引 152
7.1 MySQL中的索引有哪些分类? 152
7.2 MySQL中索引的使用原则有哪些? 152
7.3 什么是覆盖索引? 154
7.4 什么是哈希索引? 154
7.5 什么是自适应哈希索引(Adaptive Hash Index)? 156
7.6 什么是前缀索引? 157
7.7 什么是全文(FULLTEXT)索引? 158
7.8 什么是空间(SPATIAL)索引? 161
7.9 为什么索引没有被使用? 162
7.10 真题 163
第8章 优化 171
8.1 MySQL如何查看执行计划?执行计划中每列的含义分别是什么? 171
8.2 使用show profile分析SQL语句性能消耗 179
8.3 MySQL中CHECK、OPTIMIZE和ANALYZE的作用分别是什么? 182
8.4 如何对MySQL进行优化? 183
8.5 如何对SQL语句进行跟踪(trace)? 188
8.6 MySQL中的隐式类型转换(Implicit type conversion) 189
8.7 常见的SQL Hint(提示)有哪些? 191
8.8 如何查看SQL的执行频率? 191
8.9 如何定位执行效率较低的SQL语句? 192
8.10 如何对MySQL的大表优化? 192
第9章 操作系统 194
9.1 进程管理 194
9.1.1 进程与线程有什么区别? 194
9.1.2 内核线程和用户线程的区别? 195
9.2 内存管理 195
9.2.1 内存管理有哪几种方式? 195
9.2.2 什么是虚拟内存? 196
9.2.3 什么是内存碎片?什么是内碎片?什么是外碎片? 197
9.2.4 虚拟地址、逻辑地址、线性地址、物理地址有什么区别? 197
9.2.5 Cache替换算法有哪些? 198
9.3 用户编程接口 199
9.3.1 库函数调用与系统调用有什么不同? 199
9.3.2 静态链接与动态链接有什么区别? 200
9.3.3 静态链接库与动态链接库有什么区别? 200
第10章 计算机网络与通信 201
10.1 网络模型 201
10.1.1 OSI七层模型是什么? 201
10.1.2 TCP/IP模型是什么? 202
10.1.3 B/S与C/S有什么区别? 203
10.2 网络设备 203
10.2.1 交换机与路由器有什么区别? 203
10.2.2 路由表的功能有哪些? 204
10.3 网络协议 205
10.3.1 TCP和UDP的区别有哪些? 205
10.3.2 什么是ARP/RARP? 205
10.3.3 IP Phone的原理是什么?都用了哪些协议? 206
10.3.4 Ping命令是什么? 206
10.3.5 基本的HTTP流程有哪些? 207
10.4 网络其他问题 207
10.4.1 常用的网络安全防护措施有哪些? 207
10.4.2 相比IPv4,IPv6有什么优点? 209