如何建立网站教程,中国网页游戏排行榜,wordpress免费 模板,重庆观音桥好吃街在上一篇文章中提到了对MySQL数据库进行操作的一些常见工具
mysqlcheck
mysqlcheck是一个用于数据库表的检查#xff0c;修复#xff0c;分析和优化的一个客户端程序
分析的作用是查看表的关键字分布,能够让sql生成正确的执行计划(支持InnoDB,MyISAM,NDB)检查的作用是检查…在上一篇文章中提到了对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 默认是修复 相当于选项--repairmysqlanalyze 默认是修复 相当于选项--analyzemysqloptimize 默认是修复 相当于选项--optimize mysqldump
mysqldump是一个数据库备份的工具 他可以执行逻辑备份并生成一组sql语句其中包含了原始数据库和表的定义以及表中的数据以便实现对数据库的简单备份或复制他可以生成CSVXML格式的文件
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 紧凑格式输出--compatibleansi 生成与其他数据库或旧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的格式进行输出
太多了这里罗列了一些常见的有需要的话可以去官方文档读一读