mysql补遗2

1 对备份的注意点
    mysql 5中,要备份的话,当然要先设置日志了,在my.ini中设置如下
   [mysqld]

# The TCP/IP Port the MySQL Server will listen on
port=3306
log-bin="E:/mysql5/log/bin.log"
log-error="E:/mysql5/log/error.log"
log="E:/mysql5/log/mysql.log"

     备份时,用mysqldump,
比如mysqldump -u root -p -l -F demo>demo.sql
其中-l是在备份时锁定表,-F表示重新生成一个新的日志文件,
  在备份后,如果再对数据库进行了操作,则因为都写入日志里面去了,所以如果假如数据库坏了,则可以先把原来的备份文件先恢复
,比如
  mysql -u root -p demo<demo.,sql
然后再恢复全备份后到产生故障期间,新产生的日志文件.可以先去看看日志文件是如何的,
比如到上面的e:\mysql5\log目录下,用如下命令先查看日志
     mysqlbinlog xxxx-bin00001
即可看到内容
   然后恢复
  mysqlbinlog xxxx-bin00001|mysql -u root -p demo
  如果比如上午10点发生了操作操作,那么先这样恢复,恢复到误操作前的状态,然后跳过这些操作语句,最后再恢复执行这些语句
 mysqlbinlog --stop-date="2008 6-18 9:59" e:\mysql5\log\xxxx-bin |mysql -u root -p
  再跳过时间点
  mysqlbinlog --start-date="2008 6-18 10:02" e:\mysql5\log\xxxx-bin |mysql -u root -p

2 关于索引
   首先,可以用show global status like 'Com_%';
  来查看当前的CRUD执行的频率;
   然后记得用explain SQL语句来查看使用索引的情况,比如
explain select * from tbl\G;

   这时会看到有如下输出
   *************************** 1. row ***********************
           id: 1
  select_type: SIMPLE
        table: user
         type: ALL
possible_keys: NULL
          key: NULL
      key_len: NULL
          ref: NULL
         rows: 3
        Extra:
1 row in set (0.08 sec)
其中select_type表示的是类的类型,有simple,简单表,union联合表等,这个可以不大关心
  type:表的连接类型
       这里分很多了,常见的有ALL(全表查询,要避免的),range(单表中的范围查询)等等
possibal_keys:可能用到的索引,rows:扫描行的数量
  还要记得经常查看索引使用的情况
  比如show status like 'Handel_read%';
   如果看到hander_reader_key的值很高,代表一个行被索引值读的次数,很低表明索引性能不高,索引不经常用.
    hander_read_rnd_next的值高则表示查询运行低,不好,应该建立索引,意思是在数据文件中读下一行的请求数,如果大量的表扫描,则该值高
 

你可能感兴趣的:(mysql)