MySQL学习记录 —— 이십 常用工具包

news2024/11/15 1:35:18

文章目录

  • 1、总览
  • 2、mysqlcheck - 表维护程序
    • 1、作用
    • 2、注意事项
    • 3、语法
    • 4、命令选项
    • 下面每块都大致有这四个部分
  • 3、Mysqldump - 数据库备份程序
  • 4、mysqladmin - MySQL 服务器管理程序
  • 5、mysqlshow - 显示数据库、表和列信息
  • 6、mysqldumpslow - 总结慢查询日志文件
  • 7、mysqlbinlog - 处理二进制日志文件
  • 8、mysqlslap - 负载仿真客户端


1、总览

在这里插入图片描述

下面各种工具包都是bash命令。各个工具都包含作用、注意事项、语法、选项四个部分。各种工具的命令选项都可以在官方文档中查看。

MySQL 8.4

2、mysqlcheck - 表维护程序

1、作用

mysqlcheck客户端用于执行表维护,可以对表进行:分析、检查、优化或修复操作。
• 分析的作用是查看表的关键字分布,能够让 sql 生成正确的执行计划(支持 InnoDB,MyISAM,NDB)
• 检查的作用是检查表的完整性以及数据库表和索引是否损坏(支持 InnoDB,MyISAM,ARCHIVE,CSV)
• 优化的作用是回收空间、减少碎片、提高I/O(支持 InnoDB,MyISAM,ARCHIVE)
• 修复的作用是修复可能已经损坏的表(支持 MyISAM,ARCHIVE,CSV)

2、注意事项

  1. 当使用mysqlcheck⼯具时,MySQL服务器必须在运行状态
  2. 执行过程中相应的表将会被锁定,所以其他的操作将会被挂起
  3. 并不是所有的存储引擎都支持以上四种操作,如果遇到不支持的引擎会报出相应的错误
  4. 执行表修复操作之前对表进行备份,在某些情况下可能会导致数据丢失。

3、语法

mysqlcheck [options] db_name [tbl_name ...]
mysqlcheck [options] --databases db_name ...
mysqlcheck [options] --all-databases

如果在 db_name 后没有指定任何表名,或者使用 --databases 或 --all-databases 选项,那么整个数据库都会被检查。

4、命令选项

mysqlcheck的常用选项,可以在命令行中指定,也可以在选项文件中通过 [mysqlcheck] 和 [client] 组进行指定。

在这里插入图片描述

在不启动mysql时就可以用这些语句,也就是bash语句,mysqlcheck -a test_db就是分析test_db这个表。

遇到一些不满足条件的,比如存储引擎不支持,那就可以转换引擎。

InnoDB在优化的过程中是执行了一个重建的操作。根据官网建议,优化不应常用,一天以上优化就可以。

在这里插入图片描述

下面每块都大致有这四个部分

3、Mysqldump - 数据库备份程序

mysqldump客户端程序可以执行逻辑备份并生成一组SQL语句,其中包含原始数据库和表的定义以及表中的数据,以便实现对数据库的简单备份或复制。mysqldump命令可以生产CSV、或XML格式的文件。

在这里插入图片描述

语法:

mysqldump [options] db_name [tbl_name ...]
mysqldump [options] --databases db_name ...
mysqldump [options] --all-databases

常用选项

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

导出一个数据库成sql文件

mysqldump test_db > /root/dump.sql -u root -p

mysqldump有这些常用选项,可以在命令行中指定,也可以在选项文件中通过 [mysqldump] 和[client] 组进行指定。

4、mysqladmin - MySQL 服务器管理程序

mysqladmin 是⼀个执行管理操作的客⼾端。可以用来检查服务器的配置和当前状态,以及创建和删除数据库等。

语法:

mysqladmin [options] command [command-arg] [command [command-arg]] ...

command就是要带的命令选项。

检查服务器版本信息

mysqladmin version -u root -p

查看状态就把version改成status。以及还可以改成下面的这些选项。

在这里插入图片描述
在这里插入图片描述
password 密码,这个选项可以设置新密码

• 如果密码中有空格必须用双引号把密码包裹起来
• password 后可以省略新密码,mysqladmin会在之后提示输入新密码
• password 做为最后一个command 时才可以省略密码值,否则下一个参数将作为密码被设置。

默认MySQL服务器可以维护150个活动连接,如果连接被用完,可以通过kill来手动释放休眠时间最长的线程。

在这里插入图片描述
在这里插入图片描述

mysqladmin 的常用选项参考公共选项部分,可以在命令行中指定,也可以在选项文件中通过[mysqladmin] 和 [client] 组进行指定。

5、mysqlshow - 显示数据库、表和列信息

mysqlshow客户端可用于快速查看存在哪些数据库、数据库中的表以及表中的列或索引。

语法:

mysqlshow [options] [db_name [tbl_name [col_name]]]

当然最后都加上-u root -p。

• db_name tbl_name col_name 可以使用通配符 * 、 ? 、 % 或 _
• 如果没有指定数据库,则显示所有数据库名称列表。
• 如果没有指定表,则显示数据库中所有匹配的表。
• 如果没有指定列,则显示表中所有匹配的列和列类型。
• 输出仅显示当前权限可以访问的数据库、表或列的名称。

mysqlshow很简单,查看官方文档即可。

mysqlshow 的常用选项参考公共选项部分,可以在命令行中指定,也可以在选项文件中通过[mysqlshow] 和 [client] 组进行指定,具体选项参考公共选项列表。

6、mysqldumpslow - 总结慢查询日志文件

慢查询是那些执行时间很长,超过阈值的查询语句。慢查询的相关信息通常需要用日志记录下来称为慢查询日志,mysqldumpslow可以解析慢查询日志文件并汇总其内容。

通常情况下,mysqldumpslow 会将相似的查询分组并显示摘要输出,一般会把数字和字符串用 “N” 和 “S” 代替,要想显示真实的值可以使用 -a 和 -n 选项。

语法:

mysqldumpslow [options] [log_file ...]

可以不带任何选项地输出,这时候的结果中,count是执行的次数,time是单词的耗时,lock是申请与释放锁用的时间,rows是获取数据用的时间。

在这里插入图片描述

sort_type的可选项:

t,at :按查询时间或平均查询时间排序,默认排序
l,al :按锁占用时间或平均锁占用时间排序
r,ar :按发送的行数或平均发送的行数排序
c :按计数排序

7、mysqlbinlog - 处理二进制日志文件

对数据库的各种操作,比如修改,删除,都是一个个事件,每个事件都会以二进制形式记录在文件里,也就是二进制日志文件文件,binlog,Binary Log。mysqlbinlog能够以文本格式显示二进制日志文件中的内容。

binlog的默认保存路径是数据目录,Linux下默认为/var/lib/mysql。binlog是以.00000n结尾命名的文件,n不断递增。

语法:

mysqlbinlog [options] log_file ...

日志文件的输出内容中包含各种事件,事件信息包括 SQL 语句、执行语句的服务器 ID、语句执行时的时间戳、花费的时间等等。

在没有选项,直接查看一个日志文件显示的内容中,at表示一个事件在日志文件中的起始偏移位置,end_log_pos表示事件在日志中结束的偏移位置。

mysqlbinlog 的命令选项可以在命令行中指定,也可以在选项文件中通过 [mysqlbinlog] 和 [client] 组进行指定。

在这里插入图片描述
在这里插入图片描述

还有

–raw :mysqlbinlog以原始二进制格式写入事件,默认是文本格式
–read-from-remote-server,-R :–read-from-remote-server=file_name,-R,读取远程MySQL服务器的二进制日志,而不是读取本地,要求远程服务器正在运行

–base64-output=value ,value允许的值:( 默认 AUTO )

AUTO (“automatic”)或 UNSPEC (“unspecified”)在必要时自动显示BINLOG语句。如果使用mysqlbinlog重新执行二进制日志文件内容,那么使用 AUTO 选项是唯一安全的行为,其他选项值仅用于调试或测试,如果 --base64-output 没有指定,那么默认值是 AUTO。
NEVER 不显示BINLOG语句。
DECODE-ROWS 不显示加密内容,可以配合mysqlbinlog 的 -verbose 选项以注释的形式只显示事件的SQL语句。

8、mysqlslap - 负载仿真客户端

mysqlslap是⼀个诊断程序,用于模拟MySQL服务器的客户端负载,并报告每个阶段的时间。

  1. 可以通过 --create 或 --query 选项,指定包含SQL语句的字符串或包含SQL语句的文件。
  2. 如果指定一个包含SQL语句的文件,默认情况下每行必须包含一条语句(也就是说,隐式语句分隔符是换行符)。
  3. 如果要把一条语句分为多行书写,可以使用 --delimiter 选项指定不同的分隔符。
  4. 不能在文件中包含注释,因为mysqlslap不能解析注释。
  5. mysqlslap运行分为三个阶段:
    a. 创建测试数据阶段:创建用于测试的库、表或数据,这个阶段使用单个客户端连接
    b. 运行负载测试阶段,这个阶段可以使用许多客户端连接
    c. 清理阶段:执行删除表,断开连接等操作,这个阶段使用单个客户端连接

语法:

 mysqlslap [options]

示例:

在这里插入图片描述
在这里插入图片描述

mysqlslap 有如下常用选项,可以在命令行中指定,也可以在选项文件中通过 [mysqlslap] 和 [client] 组进行指定

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

还有–auto-generate-sql-unique-query-number选项,–auto-generate-sql-unique-query-number=N为自动测试生成多少个不同的查询(where条件不同),默认值是10。

结束。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1925684.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

福利:领取生育津贴汇总

大家注意了,最近多地区发文,生育津贴有了新变化。为了国家的未来,各位大佬记得全力以赴三胎。 01北京--不用缴费也能领取生育津贴 7月1日,北京市人社局、医保局、财政局、税务局等多部门联合印发了《关于领取失业保险金人员参加生…

【并发编程】进程 线程 协程

进程(Process)、线程(Thread)和协程(Coroutine)构成了计算机科学中实现任务并发执行的三种核心抽象机制。通常,为了提高程序的执行效率,开发者会根据应用场景和性能需求,…

Java核心篇之JVM调优实战:Arthas工具使用及GC日志分析

系列文章目录 第一章 Java核心篇之JVM探秘:内存模型与管理初探 第二章 Java核心篇之JVM探秘:对象创建与内存分配机制 第三章 Java核心篇之JVM探秘:垃圾回收算法与垃圾收集器 第四章 Java核心篇之JVM调优实战:Arthas工具使用及…

什么? CSS 将支持 if() 函数了?

CSS Working Group 简称 CSSWG, 在近期的会议中决定将 if() 添加到 CSS Values Module Level 5 中。 详情可见:css-meeting-bot 、[css-values] if() function 当我看到这个消息的时候,心中直呼这很逆天了,我们知道像 less 这些 css 这些预…

【深度学习】PyTorch深度学习笔记02-线性模型

1. 监督学习 2. 数据集的划分 3. 平均平方误差MSE 4. 线性模型Linear Model - y x * w 用穷举法确定线性模型的参数 import numpy as np import matplotlib.pyplot as pltx_data [1.0, 2.0, 3.0] y_data [2.0, 4.0, 6.0]def forward(x):return x * wdef loss(x, y):y_pred…

【原创】springboot+mysql图书共享交流平台设计与实现

个人主页:程序猿小小杨 个人简介:从事开发多年,Java、Php、Python、前端开发均有涉猎 博客内容:Java项目实战、项目演示、技术分享 文末有作者名片,希望和大家一起共同进步,你只管努力,剩下的交…

HTTP请求走私漏洞原理与利用手段分析

文章目录 前言Http请求走私1.1 漏洞诞生场景1.2 漏洞基本原理1.3 HTTP1.1与2.0 请求走私分类2.1 CL.TE类型实例2.2 TE.CL类型实例2.3 TE.TE混淆实例2.4 漏洞检测工具? 请求走私利用3.1 绕过前端安全控制3.2 揭示前端请求重写3.3 捕获他人请求内容3.4 走私构造反射XS…

用Java链接MySQL数据库的总结

✨个人主页: 不漫游-CSDN博客 前言 在日常开发中,使用Java连接MySQL数据库是一个常见的任务,涉及多个步骤。接着我就带着大家细细看来~ 一.下载.jar 包文件 1.什么是.jar 文件 通俗点讲就是一个压缩包,不过里面存放的都是由Java代…

实验2——基于NAT技术的实验(基于实验1)

目录 实验拓扑图​ 实验要求: 实验思路 基于NAT的简单知识点: 实验步骤 1. 给路由器R1配置IP 2.创建区域 2.1 电信: 2.2 移动: 3.办公区的NAT策略 3.1 服务器映射(移动链路)​编辑 3.2 写一条分公…

【算法/数列】等差数列子序列算术序列

概念: 等差数列:任意两项的差总等于同一个常数 子数组 :是数组中的一个连续序列。 子序列:是通过从原序列删除零个或多个元素并在不改变顺序的情况下排列其余元素而获得的序列 算术序列:是一个数字列表,其中…

HyperSD - 会画草图就能玩AI绘画,AI一键手绘,实时同步 本地一键整合包下载

字节跳动的Lightning团队发布的新图像模型蒸馏算法Hyper-SD,是一项在图像处理和机器学习领域的重要进展。这项技术通过创新的方法提升了模型在不同推理步骤下的性能,同时保持了模型大小的精简。 基于这个算法模型,一个很实用的功能出现了&am…

Linux RTL8111/RTL8168 不能联网 / 最新版驱动下载安装

注: 机翻,未校对。 如何让 Realtek RTL8111/RTL8168 在 Linux 下工作 这篇文章于 2016 年 8 月在我原来的博客上发布。尽管如今 Linux 下的 RTL8111/RTL8168 网络接口的情况变得越来越稳定,但它们仍然会导致数据包丢失或网络连接不稳定等问题…

【错题集】ruby 和薯条(排序 + 二分 / 双指针)

牛客对应题目链接:ruby和薯条 (nowcoder.com) 一、分析题目 1、解法一:排序 二分。 先排序,然后枚举较⼤值,在 [1, i - 1] 区间找差值的左右端点即可。 2、解法二:排序 前缀和 双指针。 先排序; …

数据结构(Java):力扣Stack集合OJ题

1、括号匹配问题 . - 力扣(LeetCode) 1.1 思路分析 根据栈的先进后出原则,我们可以这样解决问题: 遍历字符串,遇见左括号就将左括号push入栈;遇见右括号就pop出栈,将出栈的元素和该右括号比较…

JDK14新特征最全详解

JDK 14一共发行了16个JEP(JDK Enhancement Proposals,JDK 增强提案),筛选出JDK 14新特性。 - 343: 打包工具 (Incubator) - 345: G1的NUMA内存分配优化 - 349: JFR事件流 - 352: 非原子性的字节缓冲区映射 - 358: 友好的空指针异常 - 359: Records…

游戏的无边框模式是什么?有啥用?

现在很多游戏的显示设置中,都有个比较特殊的选项“无边框”。小伙伴们如果尝试过,就会发现这个效果和全屏几乎一毛一样,于是就很欢快地用了起来,不过大家也许会发现,怎么和全屏比起来,似乎有点不够爽快&…

单例模式Singleton

设计模式 23种设计模式 Singleton 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。 饿汉式 public class BankTest {public static void main(…

[图解]SysML和EA建模住宅安全系统-14-黑盒系统规约

1 00:00:02,320 --> 00:00:07,610 接下来,我们看下一步指定黑盒系统需求 2 00:00:08,790 --> 00:00:10,490 就是说,把这个系统 3 00:00:11,880 --> 00:00:15,810 我们的目标系统,ESS,看成黑盒 4 00:00:18,030 --> …

Kafka基础入门篇(深度好文)

Kafka简介 Kafka 是一个高吞吐量的分布式的基于发布/订阅模式的消息队列(Message Queue),主要应用与大数据实时处理领域。 1. 以时间复杂度为O(1)的方式提供消息持久化能力。 2. 高吞吐率。(Kafka 的吞吐量是MySQL 吞吐量的30…