Създаване на MERGE таблица
Този проблем може да се реши чрез създаването на MERGE таблица от данните за 2004 и 2005 година:
CODE1
2
3
4
5
6
7
8
| CREATE TABLE `stats_2004` (
`View_Date` datetime NOT NULL default '0000-00-00 00:00:00',
`Browser_type` varchar(255) collate latin1_general_ci NOT NULL default '',
`Javascript_enabled` enum('Y','N') collate latin1_general_ci NOT NULL default 'Y',
`Country` char(2) collate latin1_general_ci NOT NULL default '00',
`Os` varchar(100) collate latin1_general_ci NOT NULL default '',
`Ip_address` varchar(15) collate latin1_general_ci NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; |
CODE1
2
3
4
5
6
7
8
| CREATE TABLE `stats_2005` (
`View_Date` datetime NOT NULL default '0000-00-00 00:00:00',
`Browser_type` varchar(255) collate latin1_general_ci NOT NULL default '',
`Javascript_enabled` enum('Y','N') collate latin1_general_ci NOT NULL default 'Y',
`Country` char(2) collate latin1_general_ci NOT NULL default '00',
`Os` varchar(100) collate latin1_general_ci NOT NULL default '',
`Ip_address` varchar(15) collate latin1_general_ci NOT NULL default ''
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci; |
Ето и MERGE таблицата, която обединява първите две:
CODE1
2
3
4
5
6
7
8
9
| CREATE TABLE `all_stats` (
`View_Date` datetime NOT NULL default '0000-00-00 00:00:00',
`Browser_type` varchar(255) collate latin1_general_ci NOT NULL default '',
`Javascript_enabled` enum('Y','N') collate latin1_general_ci NOT NULL default 'Y',
`Country` char(2) collate latin1_general_ci NOT NULL default '00',
`Os` varchar(100) collate latin1_general_ci NOT NULL default '',
`Ip_address` varchar(15) collate latin1_general_ci NOT NULL default ''
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci
INSERT_METHOD=LAST UNION=(`stats_2004`,`stats_2005`); |
В едната таблица се съдържа информацията за 2004 година, т.е 5 милиона и в другата данните за 2005 година, отново 5 милиона. Предимството тук е, че за да изведете информацията за 2005 година е нужно да направите запитване единствено към
STATS_2005. А ако искате да изведете обща статистика, то тогава правите запитването към таблицата
ALL_STATS, при което получавате всичко от 2004 и 2005 година.