MySQL 常见客户端程序

news2024/12/27 12:53:40

本篇主要介绍MySQL常见的客户端程序

目录

一、mysqlcheck

二、mysqldump

三、mysqladmin

四、mysqldumpslow

 五、mysqlbinlog

六、mysqlshow

显示列的具体信息​编辑 七、mysqlslap


一、mysqlcheck

mysqlcheck是MySQL的表维护程序,其功能主要包含以下四个方面:

  • 分析:查看表中关键字的分布,是否执行正确的sql计划
  • 检查:检查表的完整性以及数据库表和索引是否有损坏
  • 优化:优化表,包括回收不再使用的空间,减少空间碎片,提高IO性能
  • 修复:对可能已经损坏的表进行修复(InnoDB中不支持)

下面我们来了解一下如何使用mysqlcheck,使用mysqlcheck的命令语法如下:

mysqcheck [选项] 数据库名 [表名]

这里如果不指定表名,则会操作该数据中的所有表 

 mysqlcheck的常用选项如下:

 下面我来使用一下mysqlcheck:

表分析:

根据分析的结果可以发现,库中的表都是没有问题的

表检查:

表优化:

 由于当前表不支持优化,,所以这里用表分析的结果代替了。

表修复:

因为当前表的存储引擎为InnoDB,因此不支持表修复,如果需要进行表修复的话可以先将表的存储引擎改为其它支持表修复的引擎,修复完成后再设置回来。

使用mysqlcheck时需要注意以下几点:

  • 只有在mysql运行时才能使用mysqlcheck
  • 使用mysqlcheck时操作的表会被锁住,其它操作会阻塞
  • 在进行表修复之前需要先对表备份,不然可能会导致表数据丢失 

 

二、mysqldump

mysqldump是MySQL数据备份程序,它能对数据库进行逻辑备份,生成一组SQL,其中包含数据库和表的创建语句以及表中的数据。mysqldump可以生产sql、xml、csv三种格式的备份文件。

下面我们来看一下如何使用mysqldump。

mysqldump的命令语法如下:

mysqldump [options] 数据库名[表名] [备份文件的地址]

mysqldump常用选项如下:

 

下面我们通过mysqldump来将一个test_db表进行一下备份:

首先我们需要创建一个文件,用来保存备份的数据,这里,我创建了一个test.sql

 

然后 我们再使用mysqldump进行转储备份

然后我们再来查看一下test.sql文件 

可以发现文件中包含该库相关的所有SQL语句。

三、mysqladmin

mysqladmin是MySQL的管理程序,能够查看MySQl的状态信息和配置信息,同时还能进行数据库的创建操作。

下面我们来了解一下mysqladmin的使用。

mysqladmin的使用语法如下:
 

mysqladmin [选项] 命令[命令参数]

 mysqladmin的使用的专属选项较少,使用的专属命令则比较多,常用的命令如下:

  • version:查看mysql的版本信息
  • create db_name 创建⼀个数据库名为db_name 。
  • drop db_name 删除名为 db_name 的数据库及其所有表。
  • extended-status显⽰服务器状态变量的值。
  • flush-hosts 刷新主机缓存中的所有信息。
  • flush-logs [log_type ...] 刷新所有⽇志。 log_type 中可以提供以下⼀种或多种⽇志类型binary,engine,error,general,relay,slow,多个类型之间⽤空格分隔。
  • flush-privileges 重新加载授权表
  • flush-status 清除状态变量。
  • flush-tables 刷新所有表。
  • flush-threads 刷新线程缓存。
  • password new_password 设置新密码。  

下面我们通过mysqladmin来查看一下当前MySQL的版本信息和状态:
查看版本

 查看状态

其中Uptime为mysql服务当前已运行的秒数,Threads为当前活动线程的数量,Questions为客户端查询操作的次数,slow queries为慢查询SQL的执行次数,opens为 服务器打开的表的数量,flush tables为服务器执行flush、reload、refresh等操作的次数,open tables为当前会话打开的表的数量。

四、mysqldumpslow

mysqldumpslow是MySQL中的慢查询日志总结程序,它能够对慢查询日志文件进行解析并汇总。

下面让我们来具体了解一下mysqldumpslow的使用。

mysqldumpslow的使用语法如下:

mysqldumpslow [options] [慢查询日志文件]

 mysqldumpslow的常用选项如下:

其中-s选项的sort_type有如下几种:

  • t : 按查询时间或平均查询时间进行排序
  • l : 按锁占用时间或平均占用时间排序
  • r : 按发送给客户端的数据的行数或平均行数进行排序
  • c :按该类查询语句的计数进行排序 

 下面我们来尝试一下解析一个慢查询日志;

 (test-slow.log是一个慢查询日志文件)

解析结果如下:

我们主要来看一下图中框起来的部分,其中记录了慢查询的一些参数信息,其中count为该类sql的执行次数,,time为单次执行的耗时,lock为申请与释放锁的时间,row为获取数据所消耗的时间。后面的部分为哪个用户在哪台机器上执行的该慢查询。再往后就是具体执行的慢SQL

最后要注意的是,mysqldumpslow会将相似的sql进行分组并摘要输出,具体为用N代替数字,用S代替字符串,例如“select* from table where age = 1”、“select* from table where age = 2”都会用“select* from table where age = N”代替,该功能也可以通过前面介绍的选项来关闭

 五、mysqlbinlog

mysqlbinlog是MySQL中用来将二进制日志文件解析成文本文件并显示的程序(MySQL中的二进制日志文件指的是用来保存我们对数据库进行的修改的二进制文件)

下面我们来看一下mysqlbinlog的使用:

其使用语法如下:

mysqlbinlog [options] [二进制日志文件]

常用选项如下:

 其中base64-output的value可以有如下取值:

  • AUTO(默认):自动显示binlog语句,在重新执行二进制日志文件中的sql时,使用AUTO是唯一安全的选项,其它选项只用来调试和测试
  • NEVER :不显示binlog语句
  • DECODES-ROWS:不显示加密的内容,可以搭配mysqlbinlog的version选项以注释的形式只显示事件的sql语句。

下面我们具体来用mysqlbinlog查看一个二进制日志文件:

查到的内容中其中一个事件的内容如下:

 其中,at表示该事件在整个日志文件中的起始偏位置,end_log_pos为事件在日志中结束的偏移位置。有关二进制日志的具体内容将在后面的文章中详细介绍。

六、mysqlshow

mysqlshow程序主要用来快速查看数据库,表,以及表中的列和索引的相关信息。

mysqlshow的使用语法如下:

mysqlshow [options] [数据库名[表名[字段名]]]

  •  数据库名和表名等内容可以用  * 、? 、_等通配符表示
  • 如果没有指定数据库,则显示索引数据库名称
  • 如果没有指定表名,则显示数据库中所有的表名称
  • 如果没有指定列,则显示表中所有的列名及其类型
  • 只会输出当前有权限可以访问的数据库,表、列

mysqlshow功能较简单,没有特殊的选项。

下面我们来演示一下mysqlshow的使用

查看所有数据库:

显示其中test_db中所有的表 

显示表中的所有列名及其类型:

 

显示列的具体信息

 

七、mysqlslap

mysqlslap是一个诊断程序,用来模拟多个用户来操作数据库,并记录每个阶段消耗时间以及负载情况。主要用来测试mysql服务的性能。

下面我们来看一下如何使用mysqlslap:

mysqlslap的使用语法如下:

mysqlslap [options]

常用选项如下:

 下面我们来具体演示一下mysqlslap的使用:

我们通过--concurrency选项来模拟五个用户,然后再通过--iterations来设置每个用户执行五次操作,然后再通过--auto-generate-sql选项来自动生成sql语句,然后我们通过--number-int-cols和--number-char-cols来指定生成的sql查询语句中包含三个int字段和三个varchar字段

mysqlslap --concurrency=5 --iterations=5 --auto-generate-sql --number-int-cols=3 --number-char-cols=3

 运行该指令,mysqlslap就会自动模拟5个用户来执行自动生成的sql,每条sql执行5次。

执行结果如下:

下面我们来看一下mysqlslap使用时的注意事项:

  • 可以通过 -- create或者--query选项来指定包含sql的字符串或者文件
  • 如果指定了一个包含sql的文件,文件中必须每一行对应一条sql,也就是说sql语句的默认分隔符为换行符,可以通过--delimiter选项设置
  • 包含sql的文件中不能包含注释,mysqlslap无法解析注释
  • mysqlslap的执行包含以下三个阶段 :1 创建测试数据,包括测试时的数据库,表,具体数据等内容,这个阶段只使用单个客户端与服务器进行连接 2 运行负载测试阶段 ,该阶段具体来执行模拟的sql,并会创建多个客户端与服务器连接,以模拟多个用户的情况 3 清理阶段,该阶段会删除相关数据,例如阶段1创建的库表等内容,并执行断开连接操作,该阶段单个客户端与服务器连接

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

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

相关文章

遗传算法笔记:基本工作流程

1 介绍 遗传算法有5个主要任务,直到找到最终的解决方案 2 举例 2.1 问题描述 比如我们有 5 个变量和约束,其中 X1、X2、X3、X4 和 X5 是非负整数且小于 10(0、1、2、4、5、6、7、8、9)我们希望找到 X1、X2、X3、X4 和 X5 的最…

01 Linux网络设置

目录 1.1 查看及测试网络 1.1.1 查看网络配置 1. 查看网络接口地址 1. 查看活动的网络接口设备 2. 查看指定的网络接口信息 2. 查看主机名称 3. 查看路由表条目 4. 查看网络连接情况 1.1.2 测试网络连接 1. 测试网络连通性 2. 跟踪数据包的路由途径 3. 测试DNS域名解析 1.2 设…

Apache ShardingSphere实战与核心源码剖析

Apache ShardingSphere实战与核心源码剖析 1.数据库架构演变与分库分表介绍 1.1 海量数据存储问题及解决方案 如今随着互联网的发展,数据的量级也是成指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。…

HTML LocalStorage

一篇关于HTML本地存储的文章 Window.localStorage 只读的localStorage 属性允许你访问一个Document 源(origin)的对象 Storage;存储的数据将保存在浏览器会话中。 localStorage 类似 sessionStorage,但其区别在于:存储…

AXI_GPIO

REVIEW 关于PS端已经学习过: zynq PS端 GPIO-CSDN博客 zynq PS点灯-CSDN博客 C基础与SDK调试方法-CSDN博客 Zynq上GPIO无论是MIO还是EMIO,都是属于PS侧的资源,相当于是硬核。 而作为一个PS与PL相互协作的平台,当PS侧的GPIO硬核不…

使用opencv在图像上画带刻度线的对角线,以图像中心点为0点

使用OpenCV在图像上绘制带刻度线的对角线,可以通过以下步骤实现。我们将首先找到图像的中心点,然后绘制对角线线,并在这些线的适当位置绘制刻度线。以下是详细的C代码示例: void Draw_diagonal(cv::Mat& mat, double dFactor…

【Python教程】4-字符串、列表、字典、元组与集合操作

在整理自己的笔记的时候发现了当年学习python时候整理的笔记,稍微整理一下,分享出来,方便记录和查看吧。个人觉得如果想简单了解一名语言或者技术,最简单的方式就是通过菜鸟教程去学习一下。今后会从python开始重新更新&#xff0…

shell编程(四)—— 运算符

和其他编程语言一样,bash也有多种类型的运算符,本篇对bash的相关运算符做简单介绍。 一、运算符 1.1 算术运算符 常见的算术运算符,如加()、减(-)、乘(*)、除&#xf…

Qt安装时出现无法下载存档,环境配置,main中自定义类编译不过问题

1. Qt安装时出现无法下载存档 进入Qt安装程序exe所在的文件目录,一般在下载文件夹,右键打开cmd。cmd输入:对应的exe镜像提速。 .\qt-online-installer-windows-x64-4.8.0.exe --mirror https://mirrors.cloud.tencent.com/qt/ 2. 环境配置 …

统计信号处理基础 习题解答10-11

题目 我们希望根据一个人的身高来估计他的体重。为了判断其可行性,对N100个人取数据,产生有序的数据对(h,w),其中h代表身高,w代表体重。得到的数据如图10.9(a)所示的。解释你如何利用MMSE估计量根据一个人的身高来猜测他的体重。对于这些数据的建模有些什么样的假设…

6、后端项目初始化

打开idea后, New Project ,用Maven构建 Spring Boot 项目 点击Next后:先勾选两个基本的依赖,后面再手动添加其它需要的依赖 Spring Web: 表示是一个web应用程序 Lombok:写实体类的时候添加Data注解后就会自动加上g…

npm install 的原理

1. 执行命令发生了什么 ? 执行命令后,会将安装相关的依赖,依赖会存放在根目录的node_modules下,默认采用扁平化的方式安装,排序规则为:bin文件夹为第一个,然后是开头系列的文件夹,后…

关于头条项目经验面试题的总结

文章目录 前言一、论坛项目经典话术二、请你介绍一下你最近的项目吧2.1 话术1 三、你的公司的开发环境是怎么搭建的?四、登录你们是怎么做的?4.1 账号密码登录4.2 手机验证码发送4.2.1 手机验证码发送4.2.2 手机验证码登录 五、用户行为限流是怎么做的&a…

Java面向对象-方法的重写、super

Java面向对象-方法的重写、super 一、方法的重写二、super关键字1、super可以省略2、super不可以省略3、super修饰构造器4、继承条件下构造方法的执行过程 一、方法的重写 1、发生在子类和父类中,当子类对父类提供的方法不满意的时候,要对父类的方法进行…

1000道互联网大厂面试题:ZooKeeper+Dubbo+Spring+MySQL等(含答案)

然后存储回内存,这个过程可能会出现多个线程交差。 24、a a b 与 a b 的区别 25、我能在不进行强制转换的情况下将一个 double 值赋值给 long类型的变量吗? 26、3*0.1 0.3 将会返回什么?true 还是 false? 27、int 和 Inte…

C语言学生管理系统

整理U盘发现一个C语言写的学生管理系统&#xff0c;全部代码放放我上传的资源里了 #include<stdio.h> #include<stdlib.h> #include<string.h>//需要用到strcmp函数#define LEN 15//姓名和学号的最大字符数 #define N 50//最大学生人数int n 0, t 1;//n代表…

企业微信应用 应用号内消息链接无法在企微内置浏览器打开 windows PC客户端 问题解决

问题 需求是每周在企微的应用号上发送周报&#xff0c;周报中会带着进入系统的链接&#xff0c;点击进入可以查看详情。系统需要登录鉴权&#xff0c;因此需要在内置浏览器打开便于自动认证。 但是&#xff0c;在企微应用号发送的链接&#xff0c;手机上可以正常使用企微内置…

【Vue】请求动态渲染数据

目标 请求获取数据存入 vuex, 映射渲染 安装 axios yarn add axios准备actions 和 mutations App.vue页面中调用 action, 获取数据 验证数据是否存储成功 动态渲染 cart-item.vue

现实转虚拟:Video2Game引领3D互动体验

在当今数字化时代&#xff0c;虚拟环境的创建对于游戏开发、虚拟现实应用和自动驾驶模拟器等多个领域至关重要。然而&#xff0c;传统的虚拟环境创建过程不仅复杂而且成本高昂&#xff0c;通常需要专业人员和专业软件开发工具的参与。例如&#xff0c;著名的《侠盗猎车手V》以其…

Java_中间件——Redis

Redis 介绍&#xff1a; Redis是一个基于内存的key-value结构数据库&#xff08;MySQL是通过数据文件方式存储在磁盘上&#xff0c;数据结构是二维表&#xff09; 特点&#xff1a; 更改配置文件&#xff1a; 使用密码&#xff1a; redis默认是不需要密码的&#xff0c;如果…