W poprzednich postach pisałem o algorytmie Index Merge i wykonałem krótki test jego wydajności. Tym razem przyglądniemy się jak wygląda wydajność tego algorytmu gdy danych jest dużo. Tabela, do jakiej będziemy wykonywać zapytania ma następującą strukturę:

mysql> SHOW CREATE TABLE tab1_big\G
*************************** 1. row ***************************
Table: tab1_big
Create Table: CREATE TABLE `tab1_big` (
`a` int(10) NOT NULL AUTO_INCREMENT,
`b` int(10) DEFAULT NULL,
`c` int(10) DEFAULT NULL,
`d` int(10) DEFAULT NULL,
`e` int(10) DEFAULT NULL,
`x` varchar(255) DEFAULT NULL,
`y` varchar(255) DEFAULT NULL,
`z` varchar(255) DEFAULT NULL,
PRIMARY KEY (`a`),
KEY `idx_b` (`b`),
KEY `idx_c` (`c`),
KEY `idx_d` (`d`),
KEY `idx_e` (`e`),
KEY `idx_x` (`x`),
KEY `idx_y` (`y`),
KEY `idx_z` (`z`),
KEY `idx_b_x_y_z` (`b`,`x`,`y`,`z`),
KEY `idx_b_c` (`b`,`c`)
) ENGINE=MyISAM AUTO_INCREMENT=20094993 DEFAULT CHARSET=latin2
1 row in set (0.00 sec)

czytaj dalej…