MySQL基础运维-18 读懂MySQL中的执行计划(上)

上篇文章讲了数据库中最主要的几种访问路径,不同的访问路径,在执行性能上可能会存在巨大的差别。但是我们怎么知道某一个具体的 SQL 语句在执行时,采用了什么样的访问路径呢?这就涉及到 SQL 的执行计划…

MySQL基础运维-17 如何在不影响业务的情况下平滑升级MySQL?

大家都知道,我们使用 SQL 来访问数据库,而优化 SQL 对于保证数据库系统的高效、稳定运行,以及满足业务需求和降低成本都具有至关重要的意义。从这一讲开始,我们来系统地学习 SQL 优化。 一条 S…

MySQL基础运维-16 如何在不影响业务的情况下平滑升级MySQL?

这一讲我们来讨论下将 MySQL 升级到 8.0 最新版本的具体操作步骤。基于数据库的当前版本,升级的路径会有一些差异。MySQL 支持相邻两个大版本的物理升级,比如从 5.5 升级到 5.6,从 5…

MySQL基础运维-15 非典型数据库故障解析:数据库故障一定是数据库的锅吗?

在前两讲中,我分别介绍了 MySQL 和 Linux 操作系统问题排查的基本思路,提供了一些判断数据库和操作系统是否有问题的方法。这一讲我们就以一个生产环境中发生的故障为例,来看看怎么运用前面讲到的基…

MySQL基础运维-14 Linux问题诊断入门:操作系统是否存在瓶颈?

MySQL 运行在具体的操作系统环境中,因此运行效率受限于底层操作系统和硬件环境。在分析数据库的问题时,我们需要同时关注操作系统整体运行情况。在操作系统层面,我们需要关注 CPU、内存、IO、文件系统…

MySQL基础运维-13 定位MySQL问题的思路:数据库为什么慢了?

作为一名 DBA,在使用和运维 MySQL 的十多年里,我遇到过很多各种各样的问题,比如: 平时执行很正常的一些 SQL,不知道什么原因,突然都变慢了。 数据库变得很慢,就是连接到数据库这么简单的操作…

MySQL基础运维-12 表太大了,修改表结构太慢怎么解决?(下)

在上一讲中,我们介绍了几种执行很快的 DDL 操作,这些 DDL 操作只需要修改元数据,因此即使表很大,也不影响执行速度。但是还有很多 DDL 操作,在执行的过程中需要读取全表的数据,或者是重建整个表…

MySQL基础运维-11 表太大了,修改表结构太慢怎么解决?(上)

平时我们使用 MySQL,或多或少都会遇到 DDL 的需求。比如有新业务上线,需要给现有的表添加新的字段;或者需要调整索引来优化性能;或者现有的表可能存在大量碎片,需要优化表,收缩空间。 那么对现有的…

MySQL基础运维-08 程序访问数据库内存溢出怎么解决?

不知道你平时使用各种语言编写程序访问数据库的时候,有没有遇到过内存方面的问题,确切地讲,是应用程序访问数据库时,消耗了大量的内存,甚至导致整个服务器的内存都耗尽了。 作为一名数据库的用户,我原先也写过…

MySQL基础运维-07 乱码是怎么产生的,以及如何避免?

不知道你在平时工作中是否遇到过乱码问题?我最早遇到的乱码问题还是刚开始学 C 语言编程时,有时候在 Console 上会输出“烫烫烫”这样的信息。在使用 MySQL 时,也遇到过各种乱码,乱码可能会以…

MySQL基础运维-04 MySQL中不同类型的参数与参数配置

在第一讲中,我们使用了一个极简的配置文件,只包含了最基本的一些参数,使 MySQL 能正常运行起来,便于我们进行测试、熟悉 MySQL。但是供正式环境使用的 MySQL 就不能仅仅依赖这个基础的配置了…

MySQL基础运维-03 数据库连接问题诊断分析

今天我们来聊一聊数据库连接的一些事情。在这里,连接这个词有两个意思。 首先连接是一个动词,表示客户端连接到数据库的这个过程。 其次连接还是一个名词,表示客户端和服务器建立的一个通道,客户端的命令、SQ…

MySQL基础运维-01 快速上手数据库安装部署

为什么还要学数据库安装这么基础的知识? 首先,安装数据库是了解一个数据库的第一步。通过安装部署,你可以了解数据库的核心组件,数据库由哪些文件组成,服务是怎么启动和停止的。 其次,要深入掌握一门数据库技…

全面掌握MySQL运维:从基础到高可用的系统学习指南

序言 如何学好 MySQL 运维? MySQL 是世界上最流行的开源关系型数据库之一,在各个行业中的使用非常广泛。MySQL 和 InnoDB 高性能的事务实现、数据复制技术,能满足很多行业对于数据库…

close
arrow_upward