Auf*_*ind 22 mysql myisam mysqldump index export
我在 mysqldump 上玩了一会儿,我想知道它是否默认导出索引 ( FULLTEXT
, INDEX
,...)。我阅读了它,我找到了这个选项:
--disable-keys, -K
Run Code Online (Sandbox Code Playgroud)
这表明,它实际上确实导出了索引。但我不想相信我的解释,我想确保我做对了(或错了;-))。任何人都可以确认吗?
Rol*_*DBA 17
不,它不导出索引。在将 mysqldump 加载回 mysql 时重建索引。您找到的选项“--disable-keys”会导致 mysqldump 在通过 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 ...
Run Code Online (Sandbox Code Playgroud)
LOCK TABLES 之后的行是
/*!40000 ALTER TABLE `tblAccountLinks` DISABLE KEYS */;
Run Code Online (Sandbox Code Playgroud)
这就是 --disable-keys 选项嵌入在 mysqldump 中的内容。
此外,这是在所有 INSERT 完成后嵌入的
/*!40000 ALTER TABLE `tblAccountLinks` ENABLE KEYS */;
UNLOCK TABLES;
Run Code Online (Sandbox Code Playgroud)
警告 #1
已实施 DISABLE KEYS 和 ENABLE KEYS 以在重新加载表时禁用非唯一索引的重新加载。未禁用主键和唯一键。它们在插入的同时加载。一旦启用密钥,非唯一索引将通过排序重建(或使用 MyISAM 密钥缓存,如果没有足够的可用内存)
不幸的是,DISABLE KEYS 和 ENABLE KEYS 仅适用于 MyISAM 表,不适用于 InnoDB。
警告#2
您不必 --disable-keys。您可以使用 --skip-disable-keys 禁用 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.)
Run Code Online (Sandbox Code Playgroud)
这可能会导致加载速度变慢,并可能导致非唯一索引的索引页不平衡。
警告 #3
您可以转储实际的 InnoDB 表空间(MySQL 5.5.12)
-Y, --all-tablespaces
Dump all the tablespaces.
-y, --no-tablespaces
Do not dump any tablespace information.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
17676 次 |
最近记录: |