java学习(八)

1、MySQL的索引有了解吗?

索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息,就像一本书的目录一样,可以加快查询速度。InnoDB 存储引擎的索引模型底层实现数据结构为B+树,所有数据都是存储在 B+ 树中的。

2、为什么底层数据结构使用B+树,而不是B树?

  • B+树是B树的变种,B+树的非叶子节点只用来保存索引,不存储数据,所有的数据都保存在叶子节点;而B树的非叶子节点也会保存数据。这样就使得B+树的查询效率更加稳定,均为从根节点到叶子节点的路径。
  • B+树的内部结点并没有指向关键字具体信息的指针,因此其内部结点相对B 树更小,同样空间可以读入更多的节点,所以B+树的磁盘读写代价更低。

3、聚簇索引和非聚簇索引有了解吗?

聚簇索引也称为主键索引,其索引树的叶子节点中存的是整行数据,表中行的物理顺序与键值的逻辑(索引)顺序相同。一个表只能包含一个聚集索引。因为索引(目录)只能按照一种方法进行排序。

非聚簇索引(普通索引)的叶子节点内容是主键的值。在 InnoDB 里,非主键索引也被称为二级索引(secondary index)。

4、哪些列上适合创建索引?创建索引有哪些开销?

经常需要作为条件查询的列上适合创建索引,并且该列上也必须有一定的区分度。创建索引需要维护,在插入数据的时候会重新维护各个索引树(数据页的分裂与合并),对性能造成影响。

自增主键:

为了在插入数据的时候不需要调整主键索引树的结构,强烈建议在建立表的时候使用自增主键。主键的顺序按照数据记录的插入顺序排列,自动有序。

5、MySQL中where、group by、having关键字?

  • where子句用来筛选from子句中指定的操作所产生的的行
  • group by 子句用来分组where子句的输出
  • having子句用来从分组的结果中筛选行

6、having和where的区别

  • 语法类似,where搜索条件在进行分组操作之前应用;having搜索条件在进行分组操作之后应用
  • having可以包含聚合函数sum、avg、max等
  • having子句限制的是组,而不是行

7、当同时含有where子句、group by 子句 、having子句及聚集函数时的执行顺序

  • 执行where子句查找符合条件的数据
  • 使用group by 子句对数据进行分组
  • 对group by 子句形成的组运行聚集函数计算每一组的值
  • 最后用having 子句去掉不符合条件的组

8、从浏览器中输入一个网址,比如:https://www.nowcoder.com/ 之后都发生了啥?请尽可能详细的阐述。

在浏览器中输入一个网址,首先要做的就是域名的解析,也就是域名->ip的解析,依次查看了浏览器缓存,系统缓存,hosts文件,路由器缓存,递归搜索根域名服务器,直到找到最终的ip地址

然后就是TCP协议的三次握手建立连接,过程我们已经阐述了。由浏览器发送一个HTTP请求;经过路由器的转发,通过服务器的防火墙,该HTTP请求到达了服务器;服务器处理该HTTP请求,返回一个HTML文件;浏览器解析该HTML文件,并且渲染显示在浏览器端。

这里,我们可以来具体阐述下HTTP协议和TCP协议的关系与区别。

HTTP协议和TCP协议的关系与区别:

HTTP协议是一种基于TCP/IP的应用层协议,进行HTTP数据请求必须先建立TCP/IP连接。HTTP协议提供了封装或者显示数据的具体形式;TCP协议提供了网络通信的能力。两个计算机之间的交流其实就是是两个端口之间的数据通信,具体的数据会以什么样的形式展现是以不同的应用层协议来定义的。

 

java学习 文章被收录于专栏

根据相关面试及学习进行归纳总结

全部评论

相关推荐

Kurumis:整个简历看下来就发现你其实对测试理解还很浅,很多地方都是硬凑上去,项目也是学生课设级别,没什么含金量 首先是学习建议: 1.系统性了解一个真实工程的框架,有利于你后续提升项目含金量,理解测试的逻辑 2.真正去学一下自动化测试和性能测试 再就是简历本身包装问题: 1.投测试的话就不要说自己独立开发自己测,专注描述自己怎么做测试的 2.项目经历太像套话,很容易让人怀疑你到底真的做过没有,比如并发是具体做了多少并发?自动化脚本是怎么跑兼容性和性能测试的?测试用例写了多少条? 3.教务管理系统一听就是数据库课设作业,含金量不高,不过你可以在原项目基础上重构扩展,比如添加docker容器部署MySQL和Redis,添加消息队列和锁机制防止系统扛不住高并发访问,让它真的像个实际工程 4.技能里性能专项测试没有把握不要乱写,就写你会什么工具就行了,做专项性能测试的都是行业大佬,你要写的话一定要有对应的专项性能测试项目 5.可以在简历里附上项目链接,压缩简历内容的同时提升简历真实性
今天你投了哪些公司?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务