MySQL必知必会 学习笔记 第二十九章 数据库维护
MySQL数据库是基于磁盘的文件,普通的备份系统和例程备份MySQL数据时,由于MySQL文件总是打开和使用状态,普通的文件备份不一定总是有效。
备份方法:
1.使用mysqldump转储所有数据库内容到某个外部文件,进行常规备份前这个应用应先运行,以便正确地备份转储文件。
2.使用mysqlhotcopy从一个数据库复制所有数据(并非所有数据库引擎都支持它)。
3.可用BACKUP TABLE或SELECT INTO OUTFILE转储所有数据到某个外部文件,这两条语句都接受将要创建的系统文件名,此系统文件必须不存在,否则会出错。可用RESTORE TABLE来复原。
为保证所有数据被写到磁盘(包括索引),需要在备份前使用FLUSH TABLES语句。
分析并保存索引的分布.:
ANALYZE TABLE orders;
运行它:
使用ANALYZE TABLE分析表的过程中,数据库系统会对表加一个只读锁。在分析期间,只能读取表中的记录,不能更新和插入记录。ANALYZE TABLE语句能够分析引擎为InnoDB和MyISAM的表。
发现和修复表问题:
CHECK TABLE orders, orderitems;
运行它:
CHECK TABLE在MyISAM表上还对索引进行检查,它还支持用于MyISAM表的一些检查方式:
1.CHANGED检查自最后一次检查以来改动过的表。
2.EXTENDED执行最彻底的检查。
3.FAST检查未正常关闭的表。
4.MEDIUM检查所有被删除的链接并进行键检验。
5.QUICK只进行快速扫描。
如果MyISAM访问产生不正确或不一致的结果,可能需要REPAIR TABLE修复相应表,这条语句如果经常使用,说明可能有更大的问题需要解决。
如果从一个表中删除大量数据,应使用OPTIMIZE TABLE收回所用空间,优化表性能。
服务器启动问题通常在MySQL配置或服务器本身更改时出现,MySQL在问题发生时报告错误,但多数MySQL服务器是作为系统进程或服务自动启动的,这些消息可能看不到。
排除系统启动问题时,应尽量手动启动服务器,可通过mysqld命令启动,以下是几个重要的mysqld命令行选项:
1.–help:显示选项列表。
2.–safe-mode:服务器启动时装载一些安全特性,如把运行时信息写入error log。
3.–verbose:显示全文本消息(与–help一起使用显示更详细的帮助信息)。
4.–version:显示版本信息。
mysql日志存放位置可通过以下命令查看:
show variables like 'datadir';
主要日志文件:
1.错误日志:包含启动和关闭问题和任意错误的细节,日志名通常为hostname.err,此日志名可用–log-error命令行选项更改,一般位于data目录中。
2.查询日志:记录所有MySQL活动,会很快地变得非常大,不应长期使用它,在诊断问题时很有用,日志名通常为hostname.log,此日志名可用–log命令行选项更改。
3.二进制日志:记录可能更新过数据的所有语句,日志名通常为hostname-bin,此日志名可用–log-bin命令行选项更改。此日志是MySQL 5中增加的,之前版本使用的是更新日志。
4.缓慢查询日志:记录执行缓慢的任何查询,确定数据库何处需要优化时有用,日志名通常为hostname-slow.log,此日志名可用–log-slow-queries命令行选项更改。
使用日志时,可用FLUSH LOGS语句刷新和重新开始所有日志文件(即关闭当前使用的binary log,开启一个新的日志文件,且新日志文件编号+1)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)