Nie, nie eksportuje indeksów. Indeksy są odbudowywane po wczytaniu mysqldump z powrotem do mysql. Dostępne opcje „--disable-keys” powodują, że mysqldump zapisuje coś takiego przed załadowaniem tabeli przez INSERT:
DROP TABLE IF EXISTS `tblAccountLinks`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `tblAccountLinks` (
`ID` int(11) NOT NULL auto_increment,
`FirmNo` varchar(10) NOT NULL,
`CustomerNo` varchar(20) NOT NULL,
`AccountNo` varchar(20) NOT NULL,
`LinkType` smallint(6) NOT NULL,
`AccessLevel` smallint(6) NOT NULL,
`Status` smallint(6) NOT NULL,
`CreatedOn` datetime NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=27023 DEFAULT CHARSET=latin1;
SET character_set_client = @saved_cs_client;
--
-- Dumping data for table `tblAccountLinks`
--
LOCK TABLES `tblAccountLinks` WRITE;
/*!40000 ALTER TABLE `tblAccountLinks` DISABLE KEYS */;
INSERT INTO `tblAccountLinks` VALUES (1,'F0001','C001','T00000001',1,2,1,'2008-06-30 07:55:43'),(2,'
F0001','C001','T00000002',2,2,1,'2008-06-30 07:55:43'),(3,'F0001','C002','27601012',1,2,1,'2008-06-3 ...
Linia po LOCK TABLES to
/*!40000 ALTER TABLE `tblAccountLinks` DISABLE KEYS */;
Właśnie to opcja --disable-keys osadza w mysqldump.
Jest to również osadzone po wykonaniu wszystkich WSTAWEK
/*!40000 ALTER TABLE `tblAccountLinks` ENABLE KEYS */;
UNLOCK TABLES;
CAVEAT # 1
DISABLE KEYS i ENABLE KEYS zostały zaimplementowane w celu wyłączenia przeładowywania nieunikalnych indeksów podczas przeładowywania tabeli. Klucze podstawowe i klucze unikatowe nie są wyłączone. Są ładowane w tym samym momencie, w którym są WSTAWKI. Po WŁĄCZENIU KLUCZÓW, niejednoznaczne indeksy są odbudowywane przez sortowanie (lub użycie pamięci podręcznej kluczy MyISAM oznacza, że nie ma wystarczającej ilości dostępnej pamięci)
Niestety DISABLE KEYS i ENABLE KEYS działają tylko dla tabel MyISAM, a nie InnoDB.
CAVEAT # 2
Nie musisz --disable-keys. Można je wyłączyć WYŁĄCZAJĄC KLUCZE (bez użycia słów) za pomocą --skip-disable-keys:
-K, --disable-keys '/*!40000 ALTER TABLE tb_name DISABLE KEYS */; and
'/*!40000 ALTER TABLE tb_name ENABLE KEYS */; will be put
in the output.
(Defaults to on; use --skip-disable-keys to disable.)
Może to spowodować wolniejsze ładowanie i potencjalne przewracanie stron indeksu dla indeksów nietypowych.
CAVEAT # 3
Możesz zrzucić rzeczywiste obszary tabel InnoDB (MySQL 5.5.12)
-Y, --all-tablespaces
Dump all the tablespaces.
-y, --no-tablespaces
Do not dump any tablespace information.