Nein, es werden keine Indizes exportiert. Indizes werden neu erstellt, wenn der mysqldump wieder in mysql geladen wird. Die Optionen, die Sie mit "--disable-keys" gefunden haben, bewirken, dass der mysqldump vor dem Laden der Tabelle über INSERTs so etwas schreibt:
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 ...
Die Zeile nach LOCK TABLES ist
/*!40000 ALTER TABLE `tblAccountLinks` DISABLE KEYS */;
Dies ist, was die Option --disable-keys in den mysqldump einbettet.
Dies wird auch eingebettet, nachdem alle INSERTs durchgeführt wurden
/*!40000 ALTER TABLE `tblAccountLinks` ENABLE KEYS */;
UNLOCK TABLES;
CAVEAT # 1
DISABLE KEYS und ENABLE KEYS wurden implementiert, um das Neuladen von nicht eindeutigen Indizes zu deaktivieren, während eine Tabelle neu geladen wird. Primärschlüssel und eindeutige Schlüssel sind nicht deaktiviert. Sie werden im selben Moment geladen, in dem die INSERTs geladen werden. Sobald Sie KEYS AKTIVIEREN, werden die nicht eindeutigen Indizes durch Sortieren neu erstellt (oder wenn im MyISAM-Schlüsselcache nicht genügend Speicher verfügbar ist).
Leider funktionieren DISABLE KEYS und ENABLE KEYS nur für MyISAM-Tabellen, nicht für InnoDB.
CAVEAT # 2
Sie müssen nicht --disable-keys. Sie können DISABLE KEYS (kein Wortspiel beabsichtigt) mit --skip-disable-keys deaktivieren:
-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.)
Dies kann zu einer langsameren Auslastung und einem möglichen Ausbleiben der Indexseiten für nicht eindeutige Indizes führen.
CAVEAT # 3
Sie können die tatsächlichen InnoDB-Tablespaces sichern (MySQL 5.5.12)
-Y, --all-tablespaces
Dump all the tablespaces.
-y, --no-tablespaces
Do not dump any tablespace information.