Mysql数据库 因为实时的数据有操作
我现在要把mysql的几张表的记录 达到一定的条件导出 (如果频繁的操作,有可能丢数据)
所以现在考虑分区 就是比如我 a表的数据达到10000条的时候 把 a b c d表重新分一个文件
要的效果如下
a1 1-10000
a2 10000-20000
.....
而且 我可以把a1拷走 并可以删掉
这样要怎么实现呢 可以实现吗?
我现在要把mysql的几张表的记录 达到一定的条件导出 (如果频繁的操作,有可能丢数据)
所以现在考虑分区 就是比如我 a表的数据达到10000条的时候 把 a b c d表重新分一个文件
要的效果如下
a1 1-10000
a2 10000-20000
.....
而且 我可以把a1拷走 并可以删掉
这样要怎么实现呢 可以实现吗?
18. 分区
18.1. MySQL中的分区概述
18.2. 分区类型
18.2.1. RANGE分区
18.2.2. LIST分区
18.2.3. HASH分区
18.2.4. KEY分区
18.2.5. 子分区
18.2.6. MySQL分区处理NULL值的方式
mysql Ver 14.12 Distrib 5.0.83, for unknown-openbsd4.6 (i386) using readline 4.3
我现在版本才5.0.83 看来还要升级下
我写了一个例子
CREATE TABLE testts (
id INT NOT NULL,
fname VARCHAR(30),
lname VARCHAR(30)
)
PARTITION BY RANGE (id) (
PARTITION p0 VALUES LESS THAN (5),
PARTITION p1 VALUES LESS THAN (10),
PARTITION p2 VALUES LESS THAN (15),
PARTITION p3 VALUES LESS THAN MAXVALUE
);
我分了文件如下
testts.frm testts#P#p0.MYD testts#P#p1.MYD testts#P#p2.MYD testts#P#p3.MYD
testts.par testts#P#p0.MYI testts#P#p1.MYI testts#P#p2.MYI testts#P#p3.MYI
我现在想单独查看testts#P#p0的数据要怎么看呢
我这样做的原因是因为 testts是一直在操作了 (如果也去解析的话 性能就没那么好了)
所以我用分表 把数据分段的去查看和解析
所以现在有三个问题
1.我分区好了 分表能单独的弄出去查看解析吗?
2.如果我的分表能多次利用吗 比如前10000条在testts#P#p0 我解析完后会把数据清掉 然后让50000的数据
3.就是怎么把单独的分区表 进行查看内部数据呢?
你可以继续添加分区
这个需要几步:
1。用同样的语句创建一个新表无分区
CREATE TABLE rnon637 (
id INT NOT NULL,
fname VARCHAR(30),
lname VARCHAR(30)
) engine=myisam;
2。在操作系统下,将分区表的 myd, myi 复制为rnon637.myd, myi
C:\Program Files\MySQL\MySQL Server 5.1\DATA\csdn>copy testts#P#p0.MYD rnon637.myd
Overwrite rnon637.myd? (Yes/No/All): y
1 file(s) copied.C:\Program Files\MySQL\MySQL Server 5.1\DATA\csdn>copy testts#P#p0.MYI rnon637.myi
Overwrite rnon637.myi? (Yes/No/All): y
1 file(s) copied.然后就可以直接 select * from rnon637