MySQL备份

定时完成数据库的备份

① 手动备份数据库(表的)方法

cmd控制台:
mysqldump –u root –proot 数据库 [表名1 表名2..] > 文件路径
比如: 把temp数据库备份到 d:\temp.bak
mysqldump –u root –proot temp > d:\temp.bak
如果你希望备份是,数据库的某几张表
mysqldump –u root –prot temp dept > d:\temp.dept.bak

如何使用备份文件恢复我们的数据.

mysql控制台
source d:\temp.dept.bak

② 使用定时器来自定完成

把备份数据库的指令,写入到 bat文件, 然后通过任务管理器去定时调用 bat文件.
mytask.bat 内容是:
C:\myenv\mysql5.5.27\bin\mysqldump -u root -proot temp dept > d:\temp.dept.bak
☞ 如果你的mysqldump.exe文件路径有空格,则一定要使用 “” 包括.
把mytask.bat 做成一个任务,并定时调用在 2:00 调用一次
步骤 任务计划->增加一个任务,选中你的mytask.bat文件 ,最后配置:
测试ok

如何在linux下完成定时任务:

linux如何备份.

  1. 直接执行PHP脚本, 需要在同一个服务器上执行.

    crontab -e

    00 /usr/local/bin/php /home/htdocs/phptimer.php
    2.通过HTTP请求来触发脚本, PHP文件允许不在同一服务器上

    crontab -e

    00 /usr/bin/wget -q -O temp.txt http://www.phptimer.com/phptimer.php
    上面是通过wget来请求PHP文件, PHP输出会保存在临时文件temp.txt中

    crontab -e

    00 /usr/bin/curl -o temp.txt http://www.phptimer.com/phptimer.php
    上面是通过curl -o来请求PHP文件, PHP输出会保存在临时文件temp.txt中

    crontab -e

    00 lynx -dump http://www.phptimer.com/phptimer.php
    上面是通过Lynx文本浏览器来请求PHP文件

分表技术

分表技术有(水平分割和垂直分割)
当一张越来越大时候,即使添加索引还慢的话,我们可以使用分表
以qq用户表来具体的说明一下分表的操作.
思路如图 :
首先我创建三张表 user0 / user1 /user2 , 然后我再创建 uuid表,该表的作用就是提供自增的id,
走代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
create table user0(
id int unsigned primary key ,
name varchar(32) not null default '',
pwd varchar(32) not null default '')
engine=myisam charset utf8;

create table user1(
id int unsigned primary key ,
name varchar(32) not null default '',
pwd varchar(32) not null default '')
engine=myisam charset utf8;

create table user2(
id int unsigned primary key ,
name varchar(32) not null default '',
pwd varchar(32) not null default '')
engine=myisam charset utf8;


create table uuid(
id int unsigned primary key auto_increment)engine=myisam charset utf8;

思考: 如果我们做的是一个平安保险公司的一个订单(8999999999000000条)查询功能更.
,如何处理海量表?->按时间.

  1. 分表的标准是依赖业务逻辑(时间/地区/….)
  2. 安装字符不同. a-z
  3. 我们给用户提供的查询界面一定是有条件,不能让用户进行大范围.(世界),如果需要的可以根据不同的规则,对应多套分表.
  4. 检索时候,带分页条件,减少返回的数据.
  5. 项目中,灵活的根据需求来考虑.

垂直分割

如果一张表某个字段,信息量大,但是我们很少查询,则可以考虑把这些字段,单独的放入到一张表中,这种方式称为垂直分割.

0%