当前位置: 首页 > news >正文

MySQL数据库常见工具的基础使用_1

在上一篇文章中提到了对MySQL数据库进行操作的一些常见工具 

mysqlcheck

mysqlcheck是一个用于数据库表的检查,修复,分析和优化的一个客户端程序

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

使用过程中注意事项

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

使用方式

mysqlcheck [options] 数据库名 [表名]

要是不指定表名 ,数据库中的所有表都会进行检查 
通常情况下 mysqlcheck会有如下的一些选项

mysqlcheck基本选项

  • 选项                                            说明
  • --analyze  -a                               分析表
  • --auto-repair                               如果检查的表有损坏,则自动修复它,所有表都检查过之后才进行必要的修复
  • --check   -c                                  仅检查自上次检查以来更改过的表
  • --databases,-B                          --databases 数据库名 多个数据库名用空格进行分割,处理指定数据库中的所有表
  • --force, -f                                     即使SQL错误也要继续
  • --optimize,  -o                              优化表
  • --repair, -r                                    执行可能进行的任务修复操作,除了唯一键
  • --skip-database                           --skip-database=数据库名       不需要执行检查的数据库名
  • --tables                                        --tables=表名  多个表名用空格隔开   在选项之后的所有名称参数都被视为表名
  • --use-frm                                      对于MyISAM表的修复操作 

上述指令中如果我们要对InnoDB存储引擎进行表的修复repair是不支持进行修复的,此时我们可以先把InnoDB存储引擎转化为MyISAM(这些存储引擎后期的文章中会详细提到的)。

第一个指令分析表的使用  后面的指令可以自己下去试一试

mysqlcheck的特殊使用 

mysqlcheck程序的默认功能是对数据表进行检查操作(相当于指定选项--check) 如果想对表进行修复操作,可以通过复制原来的mysqlcheck程序,并重命名为mysqlrepair,直接运行即可,还可以通过把mysqlcheck的快捷方式重命名为mysqlrepair然后直接运行就可以了

  • mysqlrepair              默认是修复  相当于选项--repair
  • mysqlanalyze           默认是修复  相当于选项--analyze
  • mysqloptimize          默认是修复  相当于选项--optimize 

 mysqldump

mysqldump是一个数据库备份的工具 他可以执行逻辑备份并生成一组sql语句,其中包含了原始数据库和表的定义以及表中的数据,以便实现对数据库的简单备份或复制,他可以生成CSV,XML格式的文件

mysqldump使用时注意事项

  • 转储表时必须有select权限
  • 转储视图时必须要有show view权限
  • 转储触发器时必须要有trigger权限
  • 如果没有使用--single-transaction选项时必须要有lock tables权限
  • 如果没有实现--no-tablespaces选项时必须要有process权限
  • 重新导入转储文件时,也需要有相应的权限
  • 由于mysqldump是逐行转储数据,所以不适合大数据量的转储与导入

使用方式

mysqldump [options] 数据库名 表名

可以转储一个或多个表或者数据库

mysqldump常用选项

  • 选项                                                     说明
  •  --add-drop-database                         在每个create database 语句之前添加 drop database
  • --add-drop-table                                 在每个create table语句之前加上drop table语句
  • --add-drop-trigger                               在每个create trigger语句之前加上 drop trigger语句
  • --add-locks                                          用lock tables 和 unlock tables语句包裹灭个表转储
  • --all-databases,-A                             转储所有数据库中的所有表
  • --databases,-B                                  将参数解释为数据库名称并转储所有的表
  • --comments,-i                                    添加注释到转储文件
  • --compact                                            紧凑格式输出
  • --compatible=ansi                               生成与其他数据库或旧MYsql服务器更兼容的输出
  • --complete-insert,-c                          使用包含列名的完整insert语句
  • --events,-E                                       从转储数据库中转储事件
  • --extended-insert,-e                          使用多行insert语法
  • --flush-logs,-F                                   在开始转储前刷新日志
  • --flush-privileges                                  在转储后刷新权限
  • --force,-f                                             转储期间发生了sql错误也要继续
  • --hex-blob                                               使用十六进制表示法转储二进制序列
  • --no-data,-d                                         转储过程中不转储表的内容
  • --xml,-X                                               以xml的格式进行输出

太多了这里罗列了一些常见的,有需要的话可以去官方文档读一读

http://www.lryc.cn/news/364214.html

相关文章:

  • C语言中指针的说明
  • webrtc vp8/9视频编解码介绍
  • 【机器学习300问】107、自然语言处理(NLP)领域有哪些子任务?
  • 面试被问准备多久要孩子?这样回答
  • HCIP-Datacom-ARST自选题库__多种协议简答【11道题】
  • C# 泛型函数
  • C# Onnx E2Pose人体关键点检测
  • YOLO10:手把手安装教程与使用说明
  • EasyRecovery2024永久免费crack激活码注册码
  • Linux Centos内网环境中安装mysql5.7详细安装过程
  • 新字符设备驱动实验学习
  • 篇1:Mapbox Style Specification
  • 实时监控与报警:人员跌倒检测算法的实践
  • LeetCode25_K个一组翻转链表
  • 电脑突然提示:“failed to load steamui.dll”是什么情况?分享几种解决steamui.dll丢失的方法
  • 【vue实战项目】通用管理系统:作业列表
  • Scikit-Learn随机森林回归
  • Vue Router 教程
  • 【数据库】SQL--DQL(初阶)
  • 【docker】docker的安装
  • OC IOS 文件解压缩预览
  • python-web应用程序-Django-From组件
  • K8s(Kubernetes)常用命令
  • C#-for循环语句
  • css动画案例练习之会展开的魔方和交错的小块
  • 前端逆向之下载canvas引用的图片
  • 深度学习手撕代码题
  • vue3 + ts 动态添加路由,刷新页面白屏问题解决方案
  • 【Kubernetes】k8s的调度约束(亲和与反亲和)
  • Java数据结构- Map和Set