1 myisam 与 innodb的区别进行总结,并讨论在什么情况下用什么ENGINE!

区别:myisam:这是默认类型。与innodb相比;它不支持外键,不支持TEXT类型的索引。不支持事物,且myisam
操作时表锁,而innodb行锁。
由于myisam不支持事物的特性,它在INSERT或UPDATE时安全性较低。所以如果执行大量 的SELECT,MyISAM是更好的选择。如果你的数据执行大量的INSERT或UPDATE,出于安全方面的考虑,应该使用InnoDB表。
所以新闻发布等内容发布网站应选用myisam,而游戏等INSERT,UPDATE操作较多的要使用innoDB表。

2 创建表,表内的数据由/etc/passwd的内容(name,uid,gid,home directory,bashh)来提供自动导入进来

gawk -F: '{print $1,$3,$4,$6,$7}' /etc/passwd > /tmp/user1
mysql
create database user ;
use user ;
create table user1(name char(20),uid int, gid int,home_directory char(100),bash char(100)) ;
gawk -F: '{print $1,$3,$4,$6,$7}' /etc/passwd > /tmp/user1
load data infile '/tmp/user1' into table user1 fields terminated by " " ;

3 使用mydumper,myload进行备份还原,并与mysqldump进行速度比较


mydumper属于第三方备份工具;需安装后使用;
mydumper,myload备份方法:
yum install gcc gcc-c++ glib2-devel mysql-devel zlib-devel pcre-devel -yrpm -ivh cmake-2.6.4-7.el5.i386.rpm
tar fvxz mydumper-0.2.3.tar.gzcd mydumper-0.2.3cmake .makemake install
tar fvxz mydumper-0.2.3.tar.gzcd mydumper-0.2.3cmake .makemake install
mkdir -pv /tmp/sqlbak
备份:mydumper -B user -u root -o /tmp/sqlbak  -r  100000
恢复:myloader -u root -d /tmp/sqlbak  -B user

mysqldump使用方法:
备份:mysqldump -u root -p user > /tmp/mysql.bak
恢复:mysql -u root -p user < /tmp/mysql.bak

在备份少量数据且CPU一般的情况下推荐使用mysqldump,方便速度和mydumper差不多 ;
在数据较大CPU较好的情况下使用myduper,多线程,速度较快;

4 全备份结合binlog来一个备份实验

binlog实验步骤;
1.全备份
mysqldump -u root -p user > /tmp/mysql.bak
2.打开binlog
vim /etc/my.cnf
[mysqld]
log-bin=binlog
log-bin-index=binlog.index
sync_binlog=0
service mysqld restart
3.做计划任务
crontab -e
* 23 * * *  /usr/bin/mysql -u root -p -e 'flush logs' ;


5 数据库的大小,备份速度和什么相关?自行查找.
  对于一个数据库完整备份来说,备份的速度很大程度上取决于下面两个因素:读磁盘数据、日志文件的吞吐量 ,写磁盘数据文件的吞吐量。