修复表

服务器运行中断电,有可能对表有损坏或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