12.4数据库的优化
数据库的优化已经在我的笔记http://blog.csdn.net/howroad/article/details/78229340中描述的比较清晰。这里整理书籍里的优化。
1.设计优化:数据库的每一个数据越小越好,主键尽可能的短。尽量避免使用可变长度列。如果长度列固定,那么她会更快。
2.权限优化:简化权限可以提高查询速度。
3.表的优化:optimize table books=MyISAMchk -r books;
4.使用索引:并且简化索引
5.使用默认值。(可以减少执行insert语句所花费的时间)
6.其他小技巧。可以在http://www.mysql.com中找到。
12.5备份数据库(没掌握好,需要再学)
1.在备份文件中使用lock table books read或者lock table books write
要记得执行flush table
2.使用mysqldump --opt -u root -p psw --all-database >all.sql
C:\Users\Administrator>mysqldump --opt -u root -p --all-databases >all.sql
Enter password: *****
mysldump:一个数据库更新命令
--opt:
默认Mysqldump导出的SQL文件中不但包含了导出的数据,还包括导出数据库中所有数据表的结构信息。
–opt:此Mysqldump命令参数是可选的,如果带上这个选项代表激活了Mysqldump命令的quick,add-drop-table,add-locks,extended-insert,lock-tables参数,也就是通过–opt参数在使用Mysqldump导出Mysql数据库信息时不需要再附加上述这些参数。
–quick:代表忽略缓冲输出,Mysqldump命令直接将数据导出到指定的SQL文件。
–add-drop-table:顾名思义,就是在每个CREATE TABEL命令之前增加DROP-TABLE IF EXISTS语句,防止数据表重名。
–add-locks:表示在INSERT数据之前和之后锁定和解锁具体的数据表,你可以打开Mysqldump导出的SQL文件,在INSERT之前会出现LOCK TABLES和UNLOCK TABLES语句。
–extended-insert (-e):此参数表示可以多行插入。
输出到该文件夹下的all.sql文件。
备份一个数据库。
C:\Users\Administrator>mysqldump --opt -u root -p mysql >mysql.sql
Enter password: *****
备份一或二张表
C:\Users\Administrator>mysqldump --opt -u root -p lustudy dept >dept.sql
Enter password: *****
C:\Users\Administrator>mysqldump --opt -u root -p lustudy dept books >dept.sql
Enter password: *****
C:\Users\Administrator>mysqldump --opt --no-data -u root -p lustudy dept books >
dept.sql
Enter password: *****
3.mysqlhostcopy database /path/for/backup
12.6恢复Mysql数据库
1.复制粘贴,安装配置
2.导出中运行查询
mysqlbinlog hostname-bin.[0-9]* | mysql
12.7实现复制(简单了解)
设置主从服务器。常规设置是对住服务器进行写查询,对从服务器进行读查询。
主服务器要开启二进制日志。
为主服务器配置一个唯一的ID。从服务器也需要唯一的ID。
……