修复表
服务器运行中断电,有可能对表有损坏或err日志中提示需要修复表
## 修复语句
mysql> repair table pre_forum_attachtype;
## 修复.MYI索引文件,可以使用.frm文件创建索引
mysql> repair table pre_forum_attachtype use_frm;
备份
## 备份库
[root@wy ~]# /usr/local/mysql/bin/mysqldump -uroot -p123456 wyydb > /data/discuz.sql
## 查看
[root@wy ~]# cat /data/discuz.sql
## 备份某一个表
[root@wy ~]# /usr/local/mysql/bin/mysqldump -uroot -p123456 wyydb pre_forum_post > /data/post.sql
## 备份时指定字符集
[root@wy ~]# /usr/local/mysql/bin/mysqldump -uroot -p123456 --default-character-set=utf8 wyydb pre_forum_post > /data/post.sql
## 只备份表的创建语句 -d
[root@wy ~]# /usr/local/mysql/bin/mysqldump -uroot -p123456 -d wyydb pre_forum_post > /data/post.sql
解释说明:
使用mysqldump工具进行备份,只写库备份的就是库;
如果需要备份某个表在库后面加上表名 db table;
-d db table 只是备份创建表的语句;
备份时指定字符集--default-character-set=utf8只需添加这个选项即可;
恢复
## 恢复库
[root@wy ~]# mysql -uroot -p123456 wyydb < /data/discuz.sql
## 恢复表
[root@wy ~]# mysql -uroot -p123456 wyydb < /data/post.sql
解释说明:
备份的时候要加表名,恢复的时候就不用加了,直接写库名即可。
## 恢复时指定字符集
[root@wy ~]# mysql -uroot -p123456 --default-character-set=utf8 wyydb < /data/post.sql
mysql重要知识点
① MySQL存储引擎MyISAM与InnoDB的优劣
http://www.pureweber.com/article/myisam-vs-innodb/
解释说明:
MyISAM引擎的每个表都有三个文件.frm .MYD .MYI,InnoDB所有表都保存在同一个数据文件中;
最重要的是.MYD来存放表数据;
.MYI索引信息可以自动生成,备份时可以忽略此文件,但.frm与.MYD必须存在;
为什么不选择InnoDB:
1、当数据访问量很少的时候InnoDB没有MyISAM快,因为InnoDB不够轻量;
MyISAM是一个轻量的引擎,但存储数据量大时会影响性能,没有InnoDB稳定;
2、存储空间两者也有区别:
MyISAM可以直接复制表文件,linux<->win互传;
InnoDB在操作系统的文件系统之上,生成一个自己的文件系统,然后格式化成它自己识别的表格式文件,数据会存放到该文件系统中;
3、MyISAM不支持事物,InnoDB支持;
4、指定select语句时MyISAM更快一些,但INSERT/UPDATE/DELETE时InnoDB更优化;
5、MyISAM统计行数更快,InnoDB则每次逐行扫描;
6、MyISAM支持表锁,高并发可能会引起表锁很长时间,而InnoDB支持表锁,行锁;
7、MyISAM不支持外键,InnoDB支持外键。
② L071-老男孩实效教育
08-MySQL服务MyISAM引擎特点讲解
12-MySQL服务InnoDB引擎特点讲解
③ 概述,需要详细了解①②
[root@Lx ~]# ls /data/mysql/wyydb/
pre_common_admincp_cmenu.frm
pre_common_admincp_cmenu.MYD
pre_common_admincp_cmenu.MYI
转载于:https://blog.51cto.com/warm51fun/1888095