MySQL高频面试题都是怎么样的

发布时间:2021-10-09 14:25:59 作者:柒染
来源:亿速云 阅读:123

本篇文章给大家分享的是有关MySQL高频面试题都是怎么样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

唯一索引比普通索引快吗, 为什么?

唯一索引不一定比普通索引快, 还可能慢。

  1. 查询时, 在未使用limit 1的情况下, 在匹配到一条数据后, 唯一索引即返回, 普通索引会继续匹配下一条数据, 发现不匹配后返回. 如此看来唯一索引少了一次匹配, 但实际上这个消耗微乎其微.

  2. 更新时, 这个情况就比较复杂了. 普通索引将记录放到change buffer中语句就执行完毕了. 而对唯一索引而言, 它必须要校验唯一性, 因此, 必须将数据页读入内存确定没有冲突, 然后才能继续操作. 对于写多读少的情况, 普通索引利用change buffer有效减少了对磁盘的访问次数, 因此普通索引性能要高于唯一索引.

  3. 加q群:478052716 免费领取(Java架构资料,视频资料,BATJ面试资料)

MySQL由哪些部分组成, 分别用来做什么

  1. Server

  2. 连接器: 管理连接, 权限验证.

  3. 分析器: 词法分析, 语法分析.

  4. 优化器: 执行计划生成, 索引的选择.

  5. 执行器: 操作存储引擎, 返回执行结果.

  6. 存储引擎: 存储数据, 提供读写接口.

  7. 加q群:478052716 免费领取(Java架构资料,视频资料,BATJ面试资料)

MySQL查询缓存有什么弊端, 应该什么情况下使用, 8.0版本对查询缓存有什么变更.

MyISAM和InnoDB的区别有哪些

MySQL怎么恢复半个月前的数据

通过整库备份+binlog进行恢复. 前提是要有定期整库备份且保存了binlog日志.

MySQL事务的隔离级别, 分别有什么特点

  1. 读未提交(RU): 一个事务还没提交时, 它做的变更就能被别的事务看到.

  2. 读提交(RC): 一个事务提交之后, 它做的变更才会被其他事务看到.

  3. 可重复读(RR): 一个事务执行过程中看到的数据, 总是跟这个事务在启动时看到的数据是一致的. 当然在可重复读隔离级别下, 未提交变更对其他事务也是不可见的.

  4. 串行化(S): 对于同一行记录, 读写都会加锁. 当出现读写锁冲突的时候, 后访问的事务必须等前一个事务执行完成才能继续执行.

做过哪些MySQL索引相关优化

简要说一下数据库范式

一千万条数据的表, 如何分页查询

数据量过大的情况下, limit offset分页会由于扫描数据太多而越往后查询越慢. 可以配合当前页最后一条ID进行查询, SELECT * FROM T WHERE id > #{ID} LIMIT #{LIMIT}. 当然, 这种情况下ID必须是有序的, 这也是有序ID的好处之一.

订单表数据量越来越大导致查询缓慢, 如何处理

分库分表. 由于历史订单使用率并不高, 高频的可能只是近期订单, 因此, 将订单表按照时间进行拆分, 根据数据量的大小考虑按月分表或按年分表. 订单ID最好包含时间(如根据雪花算法生成), 此时既能根据订单ID直接获取到订单记录, 也能按照时间进行查询。

以上就是MySQL高频面试题都是怎么样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

推荐阅读:
  1. 2019最新21个MySQL高频面试题介绍
  2. Python有哪些高频面试题

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql

上一篇:MySQL数据库中怎么进行互联网常用架构的搭建

下一篇:如何理解MySQL中filesort排序

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》