热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

mysql面试指南mysql版本类问题

你之前工作中使用的是什么版本的mysql?为什么选择这个版本?mysql常见的发行版-mysql官方版本-perconamysql(兼任官方版本,性能高于mysql社区版)-mar

你之前工作中使用的是什么版本的mysql?为什么选择这个版本?

mysql常见的发行版

- mysql官方版本

- percona mysql (兼任官方版本,性能高于mysql社区版)

- mariadb (功能兼容mysql)

答:贵公司使用的是什么版本的mysql,再结合自己之前的项目经验来讲。

比如我们之前使用的是percona的mysql版本,这个版本跟官方版本是完全

兼任的,并且还有mysql企业版才有的功能,用户审计,防火墙,innodb做备份工 具等等,并且性能要好于mysql的官方版本。

各个发行版之间的区别和缺点

image


如何决定是否要对mysql进行升级?如何进行升级?

1.升级是否可以给业务带来好处。



  • 是否可以解决业务上的某一方面的痛点

    比如:5.6-5.7多线程复制,更好的并发性,减少主从延迟的时间。

    8.0修复了 只复制json中修改的部分。想要提高性能就得升级到8这个版本。

  • 是否可以解决运上的某一方面的疼点

    比如:新版本是否修复了老版本的bug,是否提供了更多的方法来方便我们管理。

    8.0给运维提供了 各种mysql的监控度量值。

2.升级可能对业务带来的潜在的风险和影响。



  • 对原业务程序的支持是否有影响。

    比如:不同版本的mysql,需要不同版本的jdbc来进行连接

  • 对原业务程序的性能是否有影响

    比如:更新后的查询优化器,不能建立之前的索引的情况下,也可能会对查询带来负面的影响。

3.定制具体的数据库升级方案。



  • 评估受影响的业务系统

    比如:找出对应的业务系统数据库,找到负责人沟通明确数据的升级时间,并且跟研发确认是否同步数 据库连接驱动版本,明确后制定详细的步骤。

  • 升级的详细步骤

    比如:使用真实的业务数据进行多次测试,

  • 升级后的数据库环境检查

    比如:数据库配置文件参数检查,数据库系统对象的检查,环境检查等。

    有些在新版本中配置参数在新版本是不存在的。可能会造成数据库无法启动。

    mysql upgrade更新系统表。

  • 升级后的业务检查

    比如:保证在高版本业务不受任何影响,可以正常运行。

4.升级失败后的回滚方案。



  • 升级失败的回滚步骤

    比如:先备份数据库。



  • 回滚后的数据库环境检查



  • 回滚后的业务检查




主从数据库滚动升级步骤



  • 升级数据库进行备份

  • 升级slave 服务器版本

    (编译安装新版的实例,关闭老版本的实例,启动新版本的实例。)

  • 手动进行主从切换

  • 升级master服务器版本

  • 升级完成之后进行业务检查

最新的mysql版本是什么?它有什么特性比较吸引你?

mysql8.0版本主要的新特性



  • 服务器功能



    • 所有猿数据使用innodb引擎储存,无frm文件。

    • 系统表采用innodb储存并采用独立表空间。

    • 支持定义资源管理组(目前仅支持cpu资源)

      命令:create resource group xx type=user VCPU=0 THREAD_PRIORITY=10;

      可以用:select * from information——schema.resource_groups;

      查看所有使用的资源组

      获取进程号: use performance_schema

      定义资源组:set resource group xx for 84;

    • 支持不可见索引和降序索引,支持直方图优化。

    • 支持窗口函数。

    • 支持在线修改全局参数持久化。



  • 用户及安全



    • 默认使用caching_sha2_password认证插件。

    • 新增支持定义角色(role)。

    • 新增密码历史记录功能,限制重复使用密码。



  • innodb功能



    • innodb ddl语句支持原子操作

    • 支持在线修改undo表空间

    • 新增管理视图用于监控innodb表状态

    • 新增innodb_dedicated_server配置项





推荐阅读
  • 本文探讨了在Python中多线程与多进程的性能差异,特别是在处理CPU密集型任务和I/O密集型任务时的表现。由于全局解释器锁(GIL)的存在,多线程在利用多核CPU方面表现不佳,而多进程则能有效利用多核资源。 ... [详细]
  • 深入探讨:Actor模型如何解决并发与分布式计算难题
    在现代软件开发中,高并发和分布式系统的设计面临着诸多挑战。本文基于Akka最新文档,详细探讨了Actor模型如何有效地解决这些挑战,并提供了对并发和分布式计算的新视角。 ... [详细]
  • 在iOS开发中,多线程技术的应用非常广泛,能够高效地执行多个调度任务。本文将重点介绍GCD(Grand Central Dispatch)在多线程开发中的应用,包括其函数和队列的实现细节。 ... [详细]
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • Java虚拟机及其发展历程
    Java虚拟机(JVM)是每个Java开发者日常工作中不可或缺的一部分,但其背后的运作机制却往往显得神秘莫测。本文将探讨Java及其虚拟机的发展历程,帮助读者深入了解这一关键技术。 ... [详细]
  • 协程作为一种并发设计模式,能有效简化Android平台上的异步代码处理。自Kotlin 1.3版本引入协程以来,这一特性基于其他语言的成熟理念,为开发者提供了新的工具,以增强应用的响应性和效率。 ... [详细]
  • JUC并发编程——线程的基本方法使用
    目录一、线程名称设置和获取二、线程的sleep()三、线程的interrupt四、join()五、yield()六、wait(),notify(),notifyAll( ... [详细]
  • 关于进程的复习:#管道#数据的共享Managerdictlist#进程池#cpu个数1#retmap(func,iterable)#异步自带close和join#所有 ... [详细]
  • 本文深入探讨了MySQL中的高级特性,包括索引机制、锁的使用及管理、以及如何利用慢查询日志优化性能。适合有一定MySQL基础的读者进一步提升技能。 ... [详细]
  • Android 开发技巧:使用 AsyncTask 实现后台任务与 UI 交互
    本文详细介绍了如何在 Android 应用中利用 AsyncTask 来执行后台任务,并及时将任务进展反馈给用户界面,提高用户体验。 ... [详细]
  • SSE图像算法优化系列三:超高速导向滤波实现过程纪要(欢迎挑战)
    自从何凯明提出导向滤波后,因为其算法的简单性和有效性,该算法得到了广泛的应用,以至于新版的matlab都将其作为标准自带的函数之一了&#x ... [详细]
  • 我自己做了一个网站图片的抓取,感觉速度有点慢抓取4000张图片可能得用15分钟左右的时间,我百度看用线程可以加快抓取,然后创建了5个线程抓取,但是5个线程是同步执行同样的操作一个图片就 ... [详细]
  • 在运行于MS SQL Server 2005的.NET 2.0 Web应用中,我偶尔会遇到令人头疼的SQL死锁问题。过去,我们主要通过调整查询来解决这些问题,但这既耗时又不可靠。我希望能找到一种确定性的查询模式,确保从设计上彻底避免SQL死锁。 ... [详细]
  • 深入理解Java多线程与并发机制
    本文探讨了Java多线程和并发机制的核心概念,包括多线程类的分类、执行器框架、并发容器及控制工具。通过详细解析这些组件,帮助开发者更好地理解和应用多线程技术。 ... [详细]
author-avatar
贺娥岚761
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有