前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【怒怼大厂面试官】你先说说知道哪些MySQL的高级特性

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

原创
作者头像
JavaSouth南哥
修改2024-07-07 07:59:12
1100
修改2024-07-07 07:59:12
举报
文章被收录于专栏:JavaSouth系列

面试官:上一期博客问了你MySQL主从复制,现在考考你高级特性吧面试官:不用慌尽管说,错了也没关系😊。。。日分享大厂面试演练,本期是《MySQL系列》,感兴趣就关注我吧❤️

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

嗯嗯好的。

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

面试官思考中…

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

ok,那我讲讲分区表吧。

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

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

面试官思考中…

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

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

  1. 分区表是根据列进行分区的话,查询那些和分区列无关的数据,需要扫描所有分区表
  2. 分区列和SQL的索引列不匹配,也需要扫描所有分区表
  3. 当对分区表增删改查时,MySQL需要打开并锁住所有的底层表,这是分区表的另一个开销
代码语言:sql
复制
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表名,而不想改动代码的表名。可以用视图查询新表名的内容,然后把视图命名为旧表名,这样查询视图也能查询出数据。

代码语言:sql
复制
CREATE VIEW 新表名 AS
	SELECT * FROM 旧表名

面试官思考中…

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

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

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

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

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

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

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

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

大概是这些。

面试官思考中…

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

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

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

面试官抓抓脑袋,继续看你的简历......得想想考点你不懂的😰

未完待续。。。。。。

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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 面试官:你先说说知道哪些MySQL的高级特性吧
  • 面试官:你挑一个讲一讲你对他的理解
  • 面试官:那分区表是银弹?不会有什么问题吗
  • 面试官:视图你也讲一下
  • 面试官:剩下还有那两个什么什么,你也讲一讲
  • 面试官:有没听说过全文索引
  • 未完待续。。。。。。
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档