专栏首页业余草BAT 必问的 MySQL 面试题你都会吗?

BAT 必问的 MySQL 面试题你都会吗?

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xmt1139057136/article/details/89944137

小程序里的题库越来越丰富了,最近上新了不少 MySQL 面试题。其中有一些面试题不常见,但却是 BAT 必问的面试题。今天我抽一些面试题考考大家!

1、MySQL 中的 latin1 是什么字符集?

这个字符集相信大家都见过,一般在创建数据库的时候会进行设置。它在 Java 中代表的就是 ISO-8859-1。共收录256个字符,是在ASCII 字符集的基础上又扩充了 128 个西欧常用字符(包括德法两国的字母),也可以使用 1 个字节来进行编码。ISO-8859-1 这个字符集在 MySQL 中的别名就是 latin1。

2、为什么我们通常推荐使用 utf8mb4 字符集?

这个很多文章都写过,说使用 utf8 会出问题,比如当我们存储 emoji 表情时,会出现无法存入的问题。但是没有人从原理上来说为什么会丢失。这个我们可以通过 SHOW CHARSET like ‘utf8%’; 命令查看一下 utf8 和 utf8mb4 的区别。

之所以无法存储的原因就是,UTF-8 编码有可能是两个、三个、四个字节。Emoji 表情是 4 个字节,而 Mysql 的 utf8 编码最多 3 个字节,所以数据插不进去。

3、表 xttblog 存在且该表中不存在 name 字段,那么执行 select * from xttblog where name = ‘业余草’ 肯定会报错,请问是在连接器,分析器,优化器,执行器等哪个阶段报错?

这个题是我昨天发在微信群里的一个题,很多人答错。答案是分析器。因为,连接器是负责处理管理连接,权限验证的;分析器是进行词法分析,语法分析的;优化器是进行语句优化,生成执行计划,选择索引的;执行器是真正执行 SQL 语句的,并返回结果集的。所以,回答分析器才是对的。

4、MySQL 5.8 中为什么把查询缓存这一块移除了?

这个查询缓存,这一块估计很多人都没注意到。新版本的 5.8 版本的 MySQL 数据库已经移除了查询缓存这一块的设计。而且在 5.7 版本中也不推荐使用了。移除的原因是,虽然查询缓存有时候能比较快的返回数据,但是维护起来太麻烦了。而且缓存命中率太低了。如果对应的表有 insert、update、delete 等,那么缓存就得失效。如果查询语句中有函数,则放弃查询缓存。因为函数会设计的计算等有太多的不确定性。还有一些函数根本不能缓存,或没必要缓存。比如,select now() 就不能缓存,再比如,select version() 就没必要缓存。综合考虑,MySQL 把它给移除了。

更多关于 MySQL 的面试题,参考我的面试题小程序。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 手把手教你用LinkedHashMap打造FIFO和LRU缓存系统

    对于缓存来说,我相信很多人都不会陌生。一般的,对于常用的一些数据,基础数据等,也或者是为了高并发,比如抢购等把热点数据放入缓存中以实现高并发快速响应。

    业余草
  • Redis缓存,持久化,高可用

    Redis 作为缓存服务器是众多企业中的选择之一,虽然该技术很成熟但也是存在一定的问题。就是缓存带来的缓存穿透,缓存击穿,缓存失效问题,继而引用分布式锁。

    业余草
  • BAT 大厂的大型网站页面静态化你了解吗?

    我们小伙伴们在访问淘宝、网易等大型网站时有没有考虑到,网站首页、商品详情页以及新闻详情页面是如何处理的?怎么能够支撑这么大流量的访问呢?

    业余草
  • NVelocity标签设置缓存的解决方案

      意外的问题总会让人措手不及,今天与大家分享的就是NVelocity设置缓存的问题,之前刚google了一下发现没什么太好的解决方案,希望在这能为需要的朋友找...

    Java中文社群_老王
  • 第十六章:使用Redis作为SpringBoot项目数据缓存

    恒宇少年
  • Batcache 插件给服务器提速的安装过程

    魏艾斯博客写过有关开启 memcached,opcache 缓存的文章,前者是内容缓存插件,后者是 php 缓存插件,本来以为服务器优化折腾到此就差不多了,这几...

    魏艾斯博客www.vpsss.net
  • webservice 缓存机制

    本文转载:http://blog.csdn.net/zhdd1234/article/details/4555472

    跟着阿笨一起玩NET
  • xBIM 基础16 IFC的空间层次结构

    本篇介绍如何从文件中检索空间结构。IFC中的空间结构表示层次结构的嵌套结构,表示项目,站点,建筑物,楼层和空间。如果您查看IFC文档, 您会发现建筑物可以包含楼...

    张传宁老师
  • VirtualBox Ubuntu EFI 模式配置

    以 UEFI 模式启动虚拟机,首次启动会出现错误。 Shell> FS0: FS0:\> cd EFI FS0:\EFI> mkdir boot FS0:\E...

    康怀帅
  • 【 CDN 最佳实践】CDN 命中率优化思路

    CDN 在静态资源的加速场景中是将静态资源缓存在距离客户端较近的CDN 节点上,然后客户端访问该资源即可通过较短的链路直接从缓存中获取资源,而避免再通过较长的链...

    java思维导图

扫码关注云+社区

领取腾讯云代金券