【怒怼大厂面试官】你先说说知道哪些MySQL的高级特性

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 面试官:上一期博客问了你MySQL主从复制,现在考考你MySQL高级特性吧。分区的一个主要目的是将数据按照一个较粗的粒度分在不同的区域,这样的话就有很多好处。

在这里插入图片描述

面试官:上一期博客问了你MySQL主从复制,现在考考你高级特性吧


面试官:不用慌尽管说,错了也没关系😊。。。


每日分享大厂面试演练,本期是《MySQL系列》,感兴趣就关注我吧❤️

面试官:你先说说知道哪些MySQL的高级特性吧

嗯嗯好的。

我了解到的主要有:分区表、视图、存储过程、触发器、事件...这些。


面试官思考中…


面试官:你挑一个讲一讲你对他的理解

ok,那我讲讲分区表吧。

分区的一个主要目的是将数据按照一个较粗的粒度分在不同的区域,这样的话就有很多好处。

  1. 在执行查询的时候,优化器会根据分区定义过滤不需要查询的分区,这样的话就不需要扫描所有数据
  2. 可以把数据分布在不同的物理设备上,高效利用多个硬件设备


面试官思考中…


面试官:那分区表是银弹?不会有什么问题吗

它也有很多不足的,像这些:

  1. 分区表是根据列进行分区的话,查询那些和分区列无关的数据,需要扫描所有分区表
  2. 分区列和SQL的索引列不匹配,也需要扫描所有分区表
  3. 当对分区表增删改查时,MySQL需要打开并锁住所有的底层表,这是分区表的另一个开销
CREATE TABLE sales (
    order_date DATETIME NOT NULL,
    -- Other columns omitted
) ENGINE=InnODB PARTITION BY RANGE(YEAR(order_date)) (
    PARTITION P2010 VALUES LESS THAN(2010),
    PARTITION P2011 VALUES LESS THAN(2011),
    PARTITION P2012 VALUES LESS THAN(2012),
    PARTITION pCatchall VALUES LESS THAN MAXVALUE);


面试官思考中…


面试官:视图你也讲一下

Ok,视图本身是一个虚拟表不存放数据,其实就相当于保存了一条Select语句,把这条Select语句封装成视图。

我举个例子吧。在业务开发中,如果不得不改变MySQL表名,而不想改动代码的表名。可以用视图查询新表名的内容,然后把视图命名为旧表名,这样查询视图也能查询出数据。

CREATE VIEW 新表名 AS
    SELECT * FROM 旧表名


面试官思考中…


面试官:剩下还有那两个什么什么,你也讲一讲

嗯嗯好的,最后三个是存储过程、触发器和事件。

  1. 存储过程其实就是在MySQL里写方法函数

    例如可以让MySQL执行函数来插入1万条数据

  2. 触发器可以让你在SQL语句操作表数据的时候,在SQL语句执行前、执行后触发一些特定操作

    例如可以编写触发器,在插入A表数据时,给日志记录B表插入一条日志

  3. 事件类似于Linux的定时任务,可以是在某个时候、每隔一个时间间隔执行一段SQL代码。

    例如可以创建一个事件每隔一段时间调用下我们定义的一个存储过程

大概是这些。


面试官思考中…


面试官:有没听说过全文索引

有的,其实类似于ElasticSearch的全文索引。

主要是针对文本内容这种格式的数据,MySQL全文索引会对字段进行分词处理,返回匹配相关的文本内容。

在这里插入图片描述

面试官抓抓脑袋,继续看你的简历......


得想想考点你不懂的😰

未完待续。。。。。。

好了,今天的分享就先到这,我们下期大厂面试演练继续。

创作不易,不妨点赞、收藏、关注支持一下,各位的支持就是我创作的最大动力❤️

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7天前
|
SQL 关系型数据库 MySQL
Python与MySQL数据库交互:面试实战
【4月更文挑战第16天】本文介绍了Python与MySQL交互的面试重点,包括使用`mysql-connector-python`或`pymysql`连接数据库、执行SQL查询、异常处理、防止SQL注入、事务管理和ORM框架。易错点包括忘记关闭连接、忽视异常处理、硬编码SQL、忽略事务及过度依赖低效查询。通过理解这些问题和提供策略,可提升面试表现。
28 6
|
7天前
|
存储 Oracle 关系型数据库
【MySQL面试题pro版-12】
【MySQL面试题pro版-12】
14 0
|
7天前
|
SQL 关系型数据库 MySQL
【MySQL面试题pro版-10】
【MySQL面试题pro版-10】
13 1
|
7天前
|
缓存 关系型数据库 MySQL
【MySQL面试题pro版-9】
【MySQL面试题pro版-9】
20 1
|
7天前
|
存储 SQL 关系型数据库
【MySQL面试题pro版-8】
【MySQL面试题pro版-8】
12 0
|
7天前
|
存储 SQL 关系型数据库
【MySQL面试题pro版-7】
【MySQL面试题pro版-7】
19 0
|
7天前
|
存储 关系型数据库 MySQL
【MySQL面试题pro版-6】
【MySQL面试题pro版-6】
18 0
|
7天前
|
SQL 存储 关系型数据库
MySQL面试题系列-16
MySQL面试题系列-16
17 0
|
7天前
|
SQL 存储 关系型数据库
MySQL面试题系列-15
MySQL面试题系列-15
12 0
|
7天前
|
SQL 存储 关系型数据库
MySQL面试题系列-7
MySQL面试题系列-7
20 1