一:Merge表的原理及优点
在Mysql数据库中,Merge表有点类似于视图。mysql的merge引擎类型允许你把许多结构相同的表合并为一个表。之后,你可以执行查询,从多个表返回的结果就像从一个表返回的结果一样。每一个合并的表必须有完全相同表的定义和结构。
1.1 Mysql Merge表的优点:
A. 分离静态的和动态的数据
B. 利用结构接近的的数据来优化查询
C. 查询时可以访问更少的数据
D. 更容易维护大数据集
E. 可以通过修改.mrg文件来修改Merge表,当然也可以用alter进行修改,修改后要通过FLUSH TABLES刷新表缓存,此法可以动态增加减少子表
1.2 merge表存储引擎在如下这种使用场合会最为有用:
1,2,1 网上这样说:
如果需要把日志记录不停的录入MySQL数据库,并且每天、每周或者每个月都创建一个单一的表,而且要制作来自多个表的合计查询,MERGE表这时会非常有效。然而,这项功能有局限性。你只能合并MyISAM表而且必须严格遵守相同的表定义的限制。虽然这看起来好像是一个大问题,但是,如果你使用另外一种表类型(例如InnoDB),这种合并可能就不需要.
1.2.2 我的感觉最直接的用途: 可以把很多表的统计使用一张表来统计,方便我们的统计,例如,统一账户有1000个流水表,如果要用sql来做这个,你会想到什么,是union 吗?当然可以,但是你可以试一下,union时表的个数最大是61个,这样是不是不行了;如果你用merge表那就很简单,就可以在一个表里面做你的统计了(merge表应该也有表的限制,但是我没有找到这个说明),统一账户有1000个表,我创建了4个merge表(之前创建了1个,select是报错“Can't open file: './uni_acct/t_acct_water_504.frm' (errno: 24)”,然后换成4个,两个其实也可以,哈哈;具体merge表union的表数目限制从测试看应该是503,这个数据不一定准确,只是我的一个测试值(有可能和表的数据量也有关))
二 merge表的创建和注意事项:
2.1 如何创建merge表
基本表:
CREATE TABLE TEST_MERGE_1(
ID INT(5) NOT NULL,
VALUE VARCHAR(100) NOT NULL,
PRIMARY KEY(ID)
);
CREATE TABLE TEST_MERGE_2(
ID INT(5) NOT NULL,
VALUE VARCHAR(100) NOT NULL,
PRIMARY KEY(ID)
);
MERGE表:
CREATE TABLE TEST_MERGE(
ID INT(5) NOT NULL,
VALUE VARCHAR(100) NOT NULL,
PRIMARY KEY(ID)
) TYPE=MRG_MyISAM INSERT_METHOD=LAST UNION=(TEST_MERGE_1,TEST_MERGE_2);
2.2 说明:
1. 此表结构必须与基本表完全一致,包括列名、顺序(注意主键,索引这些可以不同)。UNION表必须同属一个DATAbase。
2. 此表类似于SQL中的union机制。
3. 基本表类型必须是MyISAM的。
4. 可以通过修改.mrg文件来修改MERGE表,每个基本表的名字占一行。注意:修改后要通过FLUSH TABLES刷新表缓存。
5. 对基本表的更改可以直接反映在此表上。
6. INSERT_METHOD的取值可以是: 0 不允许插入 FIRST 插入到UNION中的第一个表 LAST 插入到UNION中的最后一个表。(4.0之后可用)
7. 定义在它上面的约束没有任何作用,约束是由基本表控制的,例如两个基本表中存在着同样的一个Key值,那么在MERGE表中会有两个一样的Key值。
2.3 注意:
1.如果是通过修改.mrg文件的方式来修改MERGE表,那么一定要修改后要通过FLUSH TABLES刷新表缓存,否则修改不会生效。最近犯过一次这样的错误。
2.在数据量、查询量较大的情况下,不要试图使用Merge表来达到类似于Oracle的表分区的功能,会很影响性能。我的感觉是和union几乎等价。
3.查询结果及顺序与创建Merge表时联合表的顺序有关。
看下面的例子:
CREATE TABLE `allentest5` (
`a` int(11) NOT NULL default '0',
`b` varchar(11) default NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
CREATE TABLE `allentest6` (
`a` int(11) NOT NULL default '0',
`b` varchar(11) default NULL,
PRIMARY KEY (`a`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
CREATE TABLE `allentest_mrg_5`
(
`a` int(11) NOT NULL default '0',
`b` varchar(11) default NULL,
primary key(a)
)ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 INSERT_METHOD=LAST UNION=(`allentest5`,`allentest6`);
CREATE TABLE `allentest_mrg_6`
(
`a` int(11) NOT NULL default '0',
`b` varchar(11) default NULL,
primary key(a)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 INSERT_METHOD=LAST UNION=(`allentest6`,`allentest5`);
CREATE TABLE `allentest_mrg_6_noKey` (
`a` int(11) NOT NULL default '0',
`b` varchar(11) default NULL
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 INSERT_METHOD=LAST UNION=(`allentest6`,`allentest5`)
原始表里面的数据:
select * from allentest5;
+---+---------+
| a | b |
+---+---------+
| 3 | test5_3 |
| 2 | test5_2 |
| 1 | test5_1 |
+---+---------+
select * from allentest6;
+---+---------+
| a | b |
+---+---------+
| 1 | test6_1 |
| 2 | test6_2 |
+---+---------+
几个merger表的结果
select * from allentest_mrg_6_noKey where a =1; / *没有主键*/
+---+---------+
| a | b |
+---+---------+
| 1 | test6_1 |
| 1 | test5_1 |
+---+---------+
select * from allentest_mrg_5 where a = 1;
+---+---------+
| a | b |
+---+---------+
| 1 | test5_1 |
+---+---------+
select * from allentest_mrg_6 where a = 1;
+---+---------+
| a | b |
+---+---------+
| 1 | test6_1 |
+---+---------+
select * from allentest_mrg_5;
+---+---------+
| a | b |
+---+---------+
| 3 | test5_3 |
| 2 | test5_2 |
| 1 | test5_1 |
| 1 | test6_1 |
| 2 | test6_2 |
+---+---------+
select * from allentest_mrg_6;
+---+---------+
| a | b |
+---+---------+
| 1 | test6_1 |
| 2 | test6_2 |
| 3 | test5_3 |
| 2 | test5_2 |
| 1 | test5_1 |
+---+---------+
select * from allentest_mrg_6_noKey;
+---+---------+
| a | b |
+---+---------+
| 1 | test6_1 |
| 2 | test6_2 |
| 3 | test5_3 |
| 2 | test5_2 |
| 1 | test5_1 |
+---+---------+
可以看到如下信息:
1) mrg表查询的结果和 union的表顺序一致(见select * from allentest_mrg_5;和select * fromallentest_mrg_6;);
2)mrg主键的问题;a.在查询时如果不带条件,这时候查询出来的数据和没有带主键的是一样的(见select * from allentest_mrg_6; 和 select * from allentest_mrg_6_noKey;);b.如果带条件(带有主键的查询),这样之后查询到第一个带有主键的内容(见select * from allentest_mrg_6_noKey where a =1; select * from allentest_mrg_5 where a = 1; 和 select * from allentest_mrg_6 where a = 1;) ;因此如果是做统计,那么在创建mrg表时尽量不要增加主键。
DRGT-P03EK7-608GSC-E1F200 8AS5167JL54R
Q0TM0T-M875G7-5I9ISF-SGF200 8AVTA97J7546
C0HTGG-S04F44-6P98SD-21F200 8ALJ1K7JT54W
7GS98V-QT6RA7-MF9USC-6HF200 8AXJA17JI54D
40LPGT-Q05E47-6890SC-61F200 8A3E1Z7JH547
5GVP8V-QC7M27-MB9MSC-B1F200 8ASCAQ7JS54T
L3401T-U8Q00F-7AE3SU-JHF200 8AJ9AM7JV542
CJ0TQ0-S4P768-6QEASV-H1F200 8AP5AV7JA54X
PGUMPT-M47DM7-5H9GSF-TGF200 8AUZAB7JQ54A
LHVG9V-UCFK2F-NBBMSF-B1F200 8AP6BI7JH54S
00JRGV-P04VK7-M09CSC-G1F200 8AI71P7JK544
PGT6PT-M471M7-5H9JSF-U0F200 8A9LAE7JW54T
B08F0P-RP23P6-6M8SSD-7HF200 8A1UB37J754S
10MA0V-P85IG7-M297SC-HHF200 8AFP167JW54S
B30F10-RPP3P8-6MEBSV-FHF200 8AQRAW7JZ54B
8J8VQP-R4R7ME-6HERSV-91F200 8A2MA77JR54S
807VGV-R01WK7-MG84SD-41F200 8AB5B67JP54W
0GCRPT-P436M7-618ISC-D1F200 8AT11M7JT54M
G1JIHV-T0CTKF-N0BCSF-G1F200 8A3ICZ7JM54G
QASMRW-EAMUMN-SIUTSD-STF200 8ABAX5QJM54M
PRR62W-V6MHGN-WHUWSD-TCF200 8AC8X3QJ5543
7ARQRV-9RMMEN-IEUVSE-2TF200 8A23XZQJ754J
7AUQRU-9RNEEN-AEUGSE-5TF200 8AEWXPQJT54U
1ATRRR-8AN6MM-I2UISE-TTF200 8A3YXRQJD54H
GHQ2QP-T4E8ME-71BQSF-PHF200 8AXWB67JS54K
GHPIQP-T4E4ME-71BRSF-Q1F200 8AY4BI7JE544
J1P31P-TPE0PE-76BSSF-NHF200 8AZVBH7JZ54F
G1NIHV-T0DTKF-N0B4SF-K1F200 8AAMC77J454G
HHMI9V-TCDKIF-N3B6SF-J1F200 8ABXCL7J254S
K1LGHT-U0DC4F-78B0SF-61F200 8A2RC17JK54M
CHHCQG-34CB6C-0QB9SC-12F200 8AKBC27JY54K
J1G31G-TPC0PC-76BBSF-WHF200 8A5AC57JV549
K1FGHV-U0BT4F-N8AKSF-T1F200 8ALWCP7JC54G
LHEG9V-UCBK2F-NBAMSF-S1F200 8A6SCJ7JP548
G1DIHT-T0BCKF-70AGSF-E1F200 8APSCH7JI54E
GHCIQT-T4B4MF-71AISF-D1F200 8A79CG7J354U
K1BGHV-U0AT4F-N8ATSF-P1F200 8ASZCT7J354V
NHB19V-UTAPAF-NFAUSF-MHF200 8A86C97JF54S
NHAH9V-UTAKAF-NFAVSF-N1F200 8ATWC47JF545
8H9EQP-24ABME-0HAQSC-92F200 8AWRC47JD548
MGQFK2-UK6BUO-NDACSB-WAE200
7A74HICS2H49
RBWQPF-EIWVE3-SKRVSA-5SE200
7ANB7QWCDI4G
MSTWEH-DMW7SK-BDR8S3-Q0E200
7A77TLWUJI4A
HJVJ3E-4CWKPS-H3ABS3-0RE200
7AF9BLSRHI4Z
71V20C-QPFGG3-6EDVS6-50E200
7ARWDWMQ2J41
K27JCN-50HTS5-Q8EDSD-N55200
4AIU2W8NRA46
7p1632-1v09gp-gfrfs1-p75200
4a9vxq6sfa4h
vugp3l-nnc60u-dui3se-r55200
rcsmzkis
WI5DBD-WTHBAS-FWE6ST-WJ5200
4A8F7367MA4F
B4NN4K-AQ5UQ5-2M1K6U-LJ4200
RBSYQXHJ
0QGUAU-P6C7AN-E1P9S8-35E200
7AZDAI8B6H4Z
0GM0QA-845G6A-I1APSD-80E200
7AA91Z7ZBH4P
M2B7QU-DGIQVF-BCF9S9-97E200
7A2AY6NTKH4X
cj415j-b4q09c-rqdhsn-9be200
7awzesiveh4d
I8EURA-CI3NEI-J4TCS8-EEE200
7APN5JPPA44H
NBDH7T-LRSC9W-5EVNSQ-GME200
6ANMI9H1NF4T
8BD3HW-R2S8TF-VGWASI-H0E200
6A25THTRZ34R号P/N:3503832357
3PU8KQ-8V7A56-A7QRS4-HCE200
6ADS649FFF49
us9k4h-werd14-fsr1sa-ime200
7aeu9fv7w44q
b3kivl-ipu4nl-cmbis4-lue200
7atbst6ih44g
4ql75p-h6d9qe-49pls4-spe200
7arjj6u8fh4i
N3JKLN-5PTU5D-QEABSB-V3E200
7arpq17t744i
T39NT5-W0RDW1-FPDES1-09D200
5APK5A2G7B49
N6AWEQ-DQINSM-BE7SS9-16D200
4AHM9AUNT141
4JU2DM-H4W8JD-K9B6SQ-21D200
5ARLJJ1AJC4R
1tibgg-pf4it4-63m3rn-5cd200
6aul4dnaie44
A6MB35-RHLIPQ-EK6SSA-6HD200
4AF7GBE1WB4P
11EGH7-88BK49-R2E5SB-74D200
5A5YVJRE1C4S
u0skq2-n86u68-lrdcrl-7td200
5apkcvtb4c4a
VH8C9R-7KA32E-HU9DS3-D4D200
5AAMCIK39B47
05G3ES-P1C0JM-V04WS2-FSD200
6BH7AU1JBE48
71GF4S-QPC3Q6-VE8RSC-IGD200
5ADT7UGK1B4T
1BR2VD-0AVGNJ-82Q0S4-JRD200
5ADWUDBVF241
QJQE00-6CVBG0-1JBFSA-KCD200
5ANZE67Y5B4K
FLP7FE-BUE1SS-IW0WS9-KUD200
4ARUKU1QN144
DADGM1-3AJC5G-8RP0S9-M1D200
5A3H3D4BFC4P
hb21ir-kapgcm-l2sdsf-mud200
5amdp4mqbc4m-P/N:6505280032
mlj9an-ulcral-wd4nsc-nnd200
6ama4k8mhe4w
B4NN4K-AQ5UQ5-2M1K6U-LJ4200
RBSYQXHJ
IC8TD4-TJ2739-74HMR6-NW4200
RC2EAUH9
RD7PKG-EJ9VD4-3KJE06-SW4200
H2A7T5VG
SK72BG-MU1PIT-5N3ERM-R1D200
4AENBBPMR141pin-6500587326
S8PV67-MR67HH-UMUAS5-R3D200
5ATJG9BBFC45
ESMBG4-BMUIK1-2UVDNV-S84200
ID是:HCIV29P2
WFB77A-FSRQHR-JVMCPK-TS4200
HB9PSB7C
S7V47D-VQWH9S-FM76MT-VN4200
HBEMK35A
2008下载版最新激活码:
序列号: CSA5V1-S7RJNG-EQV4S6-G8E200 用户安装ID:U2MZUAJ6QFVR
序列号: 36RDFV-PQMJ3W-M65EGV-RN4200 用户安装ID:W2X2E2GPQ9Q1
序列号: TV3MI2-N6GTCG-LQL8S5-7L5200 用户安装ID:W1QC96MXA8L4
序列号: LDQ5RQ-LAE8MM-DALMRG-9PD200 用户安装ID:4HDP6HPCC245
序列号: AM01HI-RKG1KC-ML15S5-UUD200 用户安装ID:W2L2CYG9QK7J
序列号: 4KS0LG-146QUC-092JRL-T8D200 用户安装ID:W2C25JCJHALB
序列号: C6441W-J0H0PF-TP1AS5-45D200 用户安装ID:W2G2YY7T33PF
序列号: A7GMKR-2GT4D6-GK24S8-9GD200 用户安装ID:W2C2KYEMJ3UX
序列号: 67QTD0-HGVES8-4C0HRG-NQD200 用户安装ID:W2ZDBC4QAXQG
序列号: 7CET7T-HR3MQW-4EMQRB-J2D200 用户安装ID:4H77DRQC1242
可升级激活码:
序列号: twhgm4-n2tduh-5qj7rm-06d200 用户安装ID:4h476397qb4p
序列号: AC9G7K-2I2DQU-0KLHRN-J2D200 用户安装ID:W2428YEFRACH
序列号: ACKWII-AI564K-IKLQRN-HWD200 用户安装ID:W2B27YE6Y13T
序列号: NKL8HB-DT5BTA-SF69RH-WUD200 用户安装ID:W22D3EJGK5Z3
序列号: NKNJP5-LT5U61-DF6CRL-PMD200 用户安装ID:W2ZDMEJQKXIA
序列号: W1EB04-FQBJ01-3V8FSB-PG5200 用户安装ID:W252BGJASD5R
序列号: TIW2MK-W5NQDL-7QFDRK-395200 用户安装ID:W2Z2CGJHSC2H
序列号: 54VUUH-187MNC-8A4PR2-WPD200 用户安装ID:W2T2GXEUGYI4
序列号: 3UN97B-PVDSHR-V7NURN-NAD200 用户安装ID:W2U28WW15E43
序列号: 4WW961-16WSHG-89ITRH-SRD200 用户安装ID:W2X279SDENS5
序列号: 7L2PC9-QT8NS2-EF56RR-E1D200 用户安装ID:W24DWC5BVTKT
序列号: 0473L2-801Q58-I07WRS-THD200 用户安装ID:W2CDFFVQMF9Z
序列号: QTT8R8-VA73VI-7JGKS3-CN5200 用户安装ID:W3SC9N1VWBWG
序列号: I60FED-4GG23J-945FS0-W55200 用户安装ID:W2WC7MYGXC9U
序列号: TCS1VM-W26QNL-NPGKRJ-VW5200 用户安装ID:W1DCD5PVTJTV
序列号: DLL220-JFD98G-4S24S4-NJ5200 用户安装ID:W4NCRP3YUGME
序列号: RLDPI3-EKBFTG-SL32S6-Q05200 用户安装ID:W2VC3WFUHAC7
序列号: VLL76J-7ND81K-QU21S2-SM5200 用户安装ID:W4YCJQZ3V8KA
序列号: 9SJ43W-IFTPPW-TJU0SN-NN5200 用户安装ID:W2F2PACJMXF3
序列号: 4IPNFN-H5M43U-T9FHS3-EF5200 用户安装ID:W27241QXWXHL
序列号: 802VUH-210MFC-8GALRK-AM5200 用户安装ID:W2E26FFI5XTN
序列号: SC25AJ-6R0GIK-QMN6RK-QPD200 用户安装ID:W2IDCE9KXPKS
序列号: AK21HI-AK0HKC-IL56RN-TTD200 用户安装ID:W2F2T9GM5EIP
序列号: AML8U3-IKLBW8-TL48S7-8Q5200 用户安装ID:W24CD58QN7EL
序列号: RSQM3D-ENVC8S-BLU0S1-SN5200 用户安装ID:W2X23ERN1UFP
序列号: DCWU73-3A7VHP-PRGURL-UP5200 用户安装ID:W1W2N2VWAYNZ
序列号: SINM7D-MULT9S-DNF0S4-Q85200 用户安装ID:W2X2HB7H3PAN
序列号: 7TU4HQ-QV78TE-EFG3RG-U35200 用户安装ID:W28CBY6FHA22
序列号: SPWETF-6W7RF3-QNSFS6-S15200 用户安装ID:W2W2UGRKL2ER
序列号: 3QFAUA-GWBSFA-K7PVRK-225200 用户安装ID:W2T2YCPTBW1J
序列号: 92Q40U-R9M8P7-EIFUSA-PI5200 用户安装ID:W242XDDYWXH7
序列号: FJ5MT4-SQQCF1-6WA5S8-RLD200 用户安装ID:4H98RL8V3B44
序列号: S3331I-MUPQ0C-LMA9S6-CHD200 用户安装ID:4HP2FMLVNB4B
序列号: 3E0D6R-0VG2HM-G6G2RK-8VD200 用户安装ID:4HBIYQX88B4B
序列号: QM99D8-M8IBJA-5J0DS7-5CD200 用户安装ID:4HB24VIY1B4U
序列号: 92Q40U-R9M8P7-EIFUSA-PI5200 用户安装ID:4hcph47tpb4x
序列号: 77PUHE-QPV6KB-ME6JS3-KM5200 用户安装ID:W15CF5MCFWRQ
序列号: EK72D3-3K1QB8-PU7CRM-F1D200 用户安装ID:W2BDX2HW66TI
序列号: DTRVAG-SA6MAK-6SLNRN-ASD200 用户安装ID:4HWKC868AB4X
序列号: 9G9V0Q-A92E86-AJCTRN-9RD200 用户安装ID: W15CV5M3GF6Q
序列号:MI0TMS-5KG75M-QDDLS0-1VE200 用户安装ID:7AHRR6LPN34G
序列号:MI0TMS-5KG75M-QDDLS0-1VE200 用户安装ID:W15CV5M3GF6Q
序列号: EK72D3-3K1QB8-PU7CRM-F1D200 ID: W2BDX2HW66TI
序列号: 4P0SFP-H7073V-49RCRQ-K8E200 ID: W2VDSV6M2HX7
序列号: MI0TMS-5KG75M-QDDLS0-1VE200 ID: 7AHRR6LPN34G
序列号: LDQ5RQ-LAE8MM-DALMRG-9PD200 ID:4HDP6HPCC245
序列号:blwgn5-ruft5q-en4arn-a9d200 ID: 6alh65ssle44
序列号:5ABRV3-QAIVNG-VAWDS7-5SD200 ID: 5A71LG9JEB4Z
序列号:080K3M-02050U-G0PVSC-AJE200 ID:6A94GZSK6F4R
够不够呀