数据分析面试、笔试题汇总+解析(六)

2023-05-16

(接上篇)

面试题(MySQL篇)

3. 如何提高MySQL的查询速度?

考点解析:

考察面试者对MySQL查询优化的理解

参考答案:

(因为这个问题如果回答的详细一点可以写上一整篇,但是该篇暂不打算这么描述。这里简单提几个点,后面会专门开一篇讲MySQL查询优化的问题

(1). 当使用SELECT...WHERE...查询的时候,添加索引给指定列;
(2). 当查询大表的时候,尽量避免全表扫描(即SELECT * FROM TABLE_A...)
(3). 当要对同一批数据进行重复查询的时候,利用好缓存策略(比如InnoDB的buffer pool(缓冲池)、MyISAM的Key(键)缓存和 MySQL 查询缓存);
(4). 当查询语句含有LIKE表达式的时候,避免使用前置通配符(比如LIKE '%xxx'这样);
(5). 通过定期使用 ANALYZE TABLE语句保持表的统计信息最新;
(6). …
面试总结:

此题难度中等偏上,需要面试者对MySQL的查询原理足够了解才能回答全面,建议在工作中多对MySQL查询语句进行优化才能更好的理解掌握。

考点延伸:了解MySQL的EXPLAIN 计划吗?简单谈一下你的理解。

(下一篇更新Excel相关面试题,尽请期待)

补充回答上一篇考点延伸的两个问题参考答案

考点延伸1:ROW_NUMBER() VS RANK() VS DENSE_RANK()三者的区别?

参考答案:

简单来说,三者都可以用来做排名,不同点在于ROW_NUMBER()会给每个排名赋予一个唯一的数值;而RANK()与DENSE_RANK()都会给相同值赋予同一个排名,不同点又在于RANK()会给下一个值排名的时候跳过之前连续的排名;DENSE_RANK()则不会。可以看下面这个示例就很清楚展示了三者的区别:
在这里插入图片描述

考点延伸2:MySQL中是否存在NATURAL JOIN ?

参考答案:

MySQL中是存在NATURAL JOIN的。

NATURAL JOIN 是一种 JOIN 类型,它不需要指定 JOIN 条件,而是基于两个表之间存在相同列名的列自动进行 JOIN 操作。NATURAL JOIN 会返回两个表中列名相同的列的交集,这些列通常用作 JOIN 条件。

基础语法如下:

SELECT *
FROM table1
NATURAL JOIN table2;

MySQL会自动查找 table1 和 table2 中列名相同的列,并将它们用作 JOIN 条件。

需要注意的是,使用 NATURAL JOIN 可能会导致不必要的 JOIN,因为如果两个表中有多个列名相同的列,则所有这些列都将用作 JOIN 条件,可能会导致 JOIN 条件过于宽松。
因此,对复杂查询进行优化时,应谨慎使用 NATURAL JOIN。

PS: 本篇探讨的情况都是基于MySQL8.0版本及以上的,谢谢。

参考资料:

MySQL官方文档

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据分析面试、笔试题汇总+解析(六) 的相关文章

  • 在MATLAB中手动安装MinGW64详细教程

    在MATLAB中手动安装MinGW64详细教程 话题背景 针对MATLAB官方License限制附件安装的问题 xff0c 可以尝试线下手动自行安装 部分版本的Matlab由于License到期问题或者破解版限制 xff0c 已无法获得Ma
  • ubuntu18.04部署jenkins,图文并茂,记录一下。

    1 因为Jenkins运行需要jdk的环境 xff0c 所以首先得安装Java xff0c 先下载jdk安装包 xff08 听说用wget下载安装时会有问题 xff0c 说是什么Oracle的安装协议 xff0c 本人用wget亲测 xff
  • 通过hdparm将挂载的硬盘休眠再关机

    hdparm Y dev sda1 root 64 cubietruck plus span class token comment hdparm span hdparm get set hard disk parameters versi
  • 教程 | 简单实用的pandas技巧:如何将内存占用降低90%

    pandas 是一个 Python 软件库 xff0c 可用于数据操作和分析 数据科学博客 Dataquest io 发布了一篇关于如何优化 pandas 内存占用的教程 xff1a 仅需进行简单的数据类型转换 xff0c 就能够将一个棒球
  • 哈佛大学cs50课程笔记_哈佛CS50指南:如何为您选择正确的课程(带有免费证书)

    哈佛大学cs50课程笔记 In January I wrote an article on Class Central about CS50 Harvard s Introduction to Computer Science which
  • 使用Docker快速安装部署mysql

    使用Docker快速安装部署mysql的前提 xff1a 首先需要确保已经安装了Docker环境 如果没有安装Docker的话 xff0c 可以参考上一篇的内容 xff1a Linux上安装Docker 有了Docker环境后 xff0c
  • docker下gitlab安装配置使用(完整版)

    docker 安装gitlab以及使用 一 安装及配置 1 gitlab镜像拉取 gitlab ce为稳定版本 xff0c 后面不填写版本则默认pull最新latest版本 docker pull gitlab gitlab ce 拉取镜像
  • Linux 配置Gradle

    一 下载gradle 如果windows中有可以直接拷贝 xff0c 如果没有可以去官网下载 http www gradle org downloads 二 解压下载得到的gradle unzip gradle 2 2 1 all zip
  • gitlab配置通过smtp发送邮件(QQ exmail腾讯企业为例)

    首先祭出官网文档链接 xff1a https docs gitlab com omnibus settings smtp html 其实官网已经说的很清楚了 xff0c 并且给出了QQ邮箱的范例 xff08 BAT还是屌的 xff09 1
  • 文本编辑器Notepad++使用技巧

    除了语法高亮 xff0c 一般不用操作 还有两点经常使用的 xff1a 正则表达式查找替换和列模式编辑 这些可以在VS Eclipse Word等里也有 xff0c 但是有时打开一个文件就慢了 本来想总结记录一下技巧的 xff0c 却无意中
  • linux系统磁盘block、inode占满处理

    1 磁盘的block占满 xff0c 查看命令 df vh 然后查看占用百分比 2 磁盘inode占满 xff0c 查看命令df ih 同样也是查看占用百分比 block占满处理办法 需要用到的命令如下 LL 列出当前目录下的文件 df v
  • Code::Blocks平台下Fortran的编译

    问题背景 xff1a 因为之前学习数值方法 xff0c 有用到Fortran的地方 xff0c 所以上网查了一些资料 关于Fortran语言的编辑器安装 xff0c 目前本人接触到的支持Fortran的编辑器有VisualStdio和Cod
  • powershell远程连接

    在Linux中 xff0c 我们可以使用安全的SSH方便的进行远程管理 但在Windows下 xff0c 除了不安全的Telnet以外 xff0c 从Windows Server 2008开始提供了另外一种命令行原创管理方式 xff0c 那
  • 2022年学习总结暨2023年规划

    2022年总结 2022年是我在C站的创作元年 xff0c 在第一年也收获了不少成就 xff0c 比如 Java领域新星创作者 发布100篇博文 拿到了C站的书包 吃到了C站的月饼 成功上榜了330 43 截止目前收获粉丝8600 43 在
  • 《Prometheus+Grafana 实践派》专栏介绍

    专栏名称 Prometheus 43 Grafana 实践派 专栏介绍 本专栏根据本公司统一监控落地实践编写 在该专栏您将学到 企业级监控的选型Prometheus的基础知识Grafana的基础知识快速搭建Prometheus 43 Gra
  • 泊松分布–计算概率分布的公式

    Probability Distributions play an important role in our daily lives We commonly use them when trying to summarise and ga
  • Prometheus 的介绍和安装

    介绍 Prometheus 是一个开源的监控和报警系统 最初由SoundCloud于2012年创建 随着越来越多的公司采用Prometheus以及非常活跃的社区 Prometheus于2016年加入云原生基金会 成为Kubernetes之后
  • 因为锁的问题,我们被扣了1万

    前言 春节放假期间 xff0c 一个项目上的积分接口被刷 xff0c 而且不止一个人在刷 xff0c 并且东西也被兑走 xff0c 放假晚上被人叫起来排查问题 xff0c 通过这个人的积分明细观察 xff0c 基本一秒就能获取一次 xff0
  • Prometheus 告警机制介绍及命令解读

    本文您将了解到Prometheus 告警模块Alertmanager的架构介绍 核心概念 命令解析和AMTool的基本使用 Prometheus的告警模块并不存在于Prometheus中 而是 以独立项目Alertmanager存在 Pro
  • Prometheus 告警模块配置深度解析

    本文您将了解到Prometheus 告警模块Alertmanager 配置的深度解析 Alertmanager 配置解析 Alertmanager 配置可以用命令行配置 也可以通过配置文件配置 命令行用来配置不可变的系统参数 配置文件用来定

随机推荐