php+mysql动态网站开发,你还看不明白?

news/2024/5/9 2:39:59/文章来源:https://blog.csdn.net/m0_56662340/article/details/117326405

前言

可以说掌握这个pdf上的知识,面试问的基础知识无处左右,我凭借这个pdf拿下了OPPO/百度,京东,华为,美团,蚂蚁金服等互联网公司的offer。

下文中截图来源于朋友一个pdf版本的面经,把所以知识点的答案整理了下来,耗费他至少1个月时间,在本文最后部分把这个pdf分享给大家,觉得有用的麻烦点赞关注走一波,谢谢!!!面经中有他的知识点的答案,如下图示例,非常详细(文末有领取方式)!!!

秋招我借这份PDF的复习思路,收获美团,小米,京东等Java岗offer

一、面试官考点之索引是什么?

image.png

  • 索引是一种能提高数据库查询效率的数据结构。它可以比作一本字典的目录,可以帮你快速找到对应的记录。
  • 索引一般存储在磁盘的文件中,它是占用物理空间的。
  • 正所谓水能载舟,也能覆舟。适当的索引能提高查询效率,过多的索引会影响数据库表的插入和更新功能。

二、索引有哪些类型类型

image

数据结构维度

  • B+树索引:所有数据存储在叶子节点,复杂度为O(logn),适合范围查询。
  • 哈希索引: 适合等值查询,检索效率高,一次到位。
  • 全文索引:MyISAM和InnoDB中都支持使用全文索引,一般在文本类型char,text,varchar类型上创建。
  • R-Tree索引: 用来对GIS数据类型创建SPATIAL索引

物理存储维度

  • 聚集索引:聚集索引就是以主键创建的索引,在叶子节点存储的是表中的数据。
  • 非聚集索引:非聚集索引就是以非主键创建的索引,在叶子节点存储的是主键和索引列。

逻辑维度

  • 主键索引:一种特殊的唯一索引,不允许有空值。
  • 普通索引:MySQL中基本索引类型,允许空值和重复值。
  • 联合索引:多个字段创建的索引,使用时遵循最左前缀原则。
  • 唯一索引:索引列中的值必须是唯一的,但是允许为空值。
  • 空间索引:MySQL5.7之后支持空间索引,在空间索引这方面遵循OpenGIS几何数据模型规则。

三、面试官考点之为什么选择B+树作为索引结构

可以从这几个维度去看这个问题,查询是否够快,效率是否稳定,存储数据多少,以及查找磁盘次数等等。为什么不是哈希结构?为什么不是二叉树,为什么不是平衡二叉树,为什么不是B树,而偏偏是B+树呢?

我们写业务SQL查询时,大多数情况下,都是范围查询的,如下SQL

select * from employee where age between 18 and 28;

为什么不使用哈希结构?

我们知道哈希结构,类似k-v结构,也就是,key和value是一对一关系。它用于等值查询还可以,但是范围查询它是无能为力的哦。

为什么不使用二叉树呢?

先回忆下二叉树相关知识啦~ 所谓二叉树,特点如下:

  • 每个结点最多两个子树,分别称为左子树和右子树。
  • 左子节点的值小于当前节点的值,当前节点值小于右子节点值
  • 顶端的节点称为根节点,没有子节点的节点值称为叶子节点。

我们脑海中,很容易就浮现出这种二叉树结构图:

image

但是呢,有些特殊二叉树,它可能这样的哦:

image.png

如果二叉树特殊化为一个链表,相当于全表扫描。那么还要索引干嘛呀?因此,一般二叉树不适合作为索引结构。

为什么不使用平衡二叉树呢?

平衡二叉树特点:它也是一颗二叉查找树,任何节点的两个子树高度最大差为1。所以就不会出现特殊化一个链表的情况啦。

image

但是呢:

  • 平衡二叉树插入或者更新是,需要左旋右旋维持平衡,维护代价大
  • 如果数量多的话,树的高度会很高。因为数据是存在磁盘的,以它作为索引结构,每次从磁盘读取一个节点,操作IO的次数就多啦。

为什么不使用B树呢?

数据量大的话,平衡二叉树的高度会很高,会增加IO嘛。那为什么不选择同样数据量,高度更矮的B树呢?

image.png

B树相对于平衡二叉树,就可以存储更多的数据,高度更低。但是最后为甚选择B+树呢?因为B+树是B树的升级版:

  • B+树非叶子节点上是不存储数据的,仅存储键值,而B树节点中不仅存储键值,也会存储数据。innodb中页的默认大小是16KB,如果不存储数据,那么就会存储更多的键值,相应的树的阶数(节点的子节点树)就会更大,树就会更矮更胖,如此一来我们查找数据进行磁盘的IO次数有会再次减少,数据查询的效率也会更快。
  • B+树索引的所有数据均存储在叶子节点,而且数据是按照顺序排列的,链表连着的。那么B+树使得范围查找,排序查找,分组查找以及去重查找变得异常简单。

面试题总结

面试文件获取方式:戳这里免费下载(助你面试无忧)

其它面试题(springboot、mybatis、并发、java中高级面试总结等)

is、并发、java中高级面试总结等)**

[外链图片转存中…(img-H8Z8DO6T-1622091977297)]

[外链图片转存中…(img-M577Msdq-1622091977298)]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_774375.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

我的世界java版官方网站,讲的太透彻了

简介 基于SpringCloud(Hoxton.SR1) SpringBoot(2.2.4.RELEASE) 的 SaaS型微服务脚手架,具备用户管理、资源权限管理、网关统一鉴权、Xss防跨站攻击、自动代码生成、多存储系统、分布式事务、分布式定时任务等多个模块,支持多业务系统并行开发&#xff…

网站虚拟主机服务器选择,选择虚拟主机服务的六大要点

信息化的工作之一就是开设网站,而对大量小规模企业来讲,开设网站就涉及到虚拟主机的选择问题。这是一个看似简单,实际上却有不少“讲究”的工作。利用虚拟主机技术,可以把一台真正的主机分成许多“ 虚拟”的主机,它们之…

app 访问h5 如何截取_如何选择自适应网站建设?自适应网站建设的重要因素?...

如何选择自适应网站建设?自适应网站制作有何特点?自适应网站建设的重要因素?“自适应式网站”又被称为HTML5自适应式网站,自适应式网站做为欧美流行建站方式,现在正成为中国做网站的主导方向,越来越多做网站…

php 架构的网站 如何上传.sql文件到远程主机并用它部署数据库,技巧和诀窍: 如何上传一个.SQL文件到远程主机并且执行它来部署...

Tip/Trick: How to upload a .SQL file to a Hoster and Execute it to Deploy a SQL Database 【原文发表日期】 Thursday, January 11, 2007 12:20 AM 上个月 (英文),我讨论了新的(免费的)数据库发布向导,它是设计来充分简化在web主机环境中上传和部署…

3个月学会Java开发!mysql官方下载网站

前言 要相信,你现在所有的努力和付出都会在将来的某一天回报给你! 首先阿里巴巴作为国内互联网行业的领头羊,培养了一代又一代的IT技术人才,很多想进阿里这些互联网大厂的程序员看中的不仅仅是高薪丰厚的福利待遇,同样…

全自动化“视频网站”视频制作与发布的分布式系统介绍 - 支持 Bitrate Switching(类似Smooth Streaming)...

一、前言 从事视频后台开发工作已近三年,在掌握了必需的业务知识以及技术后,我思考着做出点成果,用来作为自己再就业时的简历或者前三个学年的主要成绩。本文我将就三大部分简单介绍这套系统的优势、特点,定能抛砖引玉&#xff1b…

5分钟搞定!java免费源码网站

一、前言 最近刚读完一本书:《Netty、Zookeeper、Redis 并发实战》,个人觉得 Netty 部分是写得很不错的,读完之后又对 Netty 进行了一波很好的复习(之前用 spring boot netty zookeeper 模仿 dubbo 做 rpc 框架,那时…

零基础个人网站搭建教程(一个完全的新人如何搭建自己的个人网站)

花了一整天时间写的。混迹网络多年,现在又是it圈的一员,大大小小的网站也都做过。所以今天我想详细的给大家来一篇:零基础个人网站搭建教程,动手能力强的同学应该看完就会了。 WordPress: WordPress是使用PHP语言开发的…

零基础,最完整的建站教程

授人以鱼不如授人以渔“,这篇文章演示一下如何使用网络上开源免费网站程序搭建网站,最后会完成一个WordPress博客网站的搭建,但是方法是通用的,你可以把WordPress换成其他的程序,比如社区论坛,电商网站等都…

在IIS中使用SSL配置HTTPS网站(转)

由于Windows系统的普及,很多中小企业在自己的网站和内部办公管理系统都是用默认的IIS来做WEB服务器使用。默认情况下我们所使用的HTTP协议是没有任何加密措施的,所有的消息全部都是以明文形式在网络上传送的,恶意的攻击者可以通过安装监听程序…

如何快速搭建个人网站

今日科技快讯针对近日坊间流传的“我们天天在看你的微信”一说,微信团队今天发表声明重申三条用户隐私原则:1、微信不留存任何用户的聊天记录,聊天内容只存储在用户的手机、电脑等终端设备上;2、微信不会将用户的任何聊天内容用于…

搭建个人网站教程:阿里云+WordPress

以下教程简单易懂,不需要复杂的环境配置即可完成个人网站的搭建。 Step1:购买阿里云的服务器 这里我选择了“轻量应用服务器”(如果是搭建个人网站,容量小一点就行,不需要太大),镜像选择&…

超详细搭建个人网站教程,附带各种常见报错解决方案。

文章目录前言解惑环节准备工作环境配置一、安装二、环境配置1.cnpm安装2.Hexo安装可能报错和问题:博客初始化1、博客搭建可能报错和问题:2、博客测试可能报错和问题主题更换可能报错和问题:部署到云端1、创建库2.配置本地3.安装插件4.部署云端…

超详细的网站搭建教程使用阿里云RDS和ECS搭建个人博客网站

今天讲一讲如何利用云数据库、云服务器、word press搭建博客网站 1、注册阿里云账号 2、购买云数据库RDS(MySQL) 3、购买云服务器ECS 4、配置数据库 5、配置服务器 6、部署LAMP环境【Apache、MySQL、PHP、wordpress】 1、注册阿里云账号 浏览器搜索阿…

分布式解决方案-解决网站跨域请求

1.什么是网站跨域 跨域原因产生:在当前域名请求网站中,默认不允许通过ajax请求发送其他域名。 两个项目之间使用ajax(前端类似后端的httpclient)实现通讯,如果浏览器访问的域名和端口与ajax请求访问的地址不一样的情况下,…

互联网公司都在用什么语言写网站后端?

2019独角兽企业重金招聘Python工程师标准>>> 豆瓣 python 淘宝 php 百度 php python 优酷 java php 谷歌 python youtube python facebook php wikipedia php twitter ruby 看来php和python平分秋色&…

开发高性能网站的web性能测试工具

开发高性能网站的web性能测试工具文章分类:Web前端 WEB性能测试工具主要分为三种,一种是测试页面资源加载速度的,一种是测试页面加载完毕后页面呈现、JS操作速度的,还有一种是总体上对页面进行评价分析,下面分别对这些工具进行介绍…

网站访问流程

(点击查看大图)网站的架构如上图所示,下面将分析从用户在浏览器输入访问一个域名,例如www.yy.com,到页面全部展示出来经过的所有流程。(1)用户在浏览器地址栏输入www.yy.com或者yy.com(2)此时系统将检查缓存(这里的缓存包括浏览器缓存、操作系…

60款高质量的网站模板免费下载(上篇)

您可能还喜欢 分享45款高质量的免费(X)HTML/CSS模板最新30佳精美 PSD 网站模板免费下载寻找网页设计灵感的27个最佳网站推荐60佳灵感来自大自然的网页设计作品欣赏分享100佳精美的作品集网站设计案例当你想快速制作出一个网站的时候,网站模板就非常有用了。学习网页…

50款高质量的网站PSD模板免费下载(第一季)

今天开始推出系列文章向大家分享50款高质量的网站PSD模板,您可以免费下载使用。这些现成的PSD模板可以让您的工作得心应手,帮助您节省大量的时间和精力。感谢那些优秀的设计师分享他们的劳动成果,让更多的人可以使用他们的创意设计&#xff0…