나는 mysqldump를 함께 조금 주위를 연주하고 수출 인덱스를 않는 경우 난 (궁금해서 FULLTEXT
, INDEX
기본적으로 ...). 나는 그것에 대해 읽고이 옵션을 발견 했다 .
--disable-keys, -K
이는 실제로 인덱스를 내보내는 것입니다. 그러나 나는 내 해석을 신뢰하고 싶지 않으며 내가 올바르게 해석했는지 확인하고 싶습니다 (또는 잘못된 ;-)). 누구든지 확인할 수 있습니까?
나는 mysqldump를 함께 조금 주위를 연주하고 수출 인덱스를 않는 경우 난 (궁금해서 FULLTEXT
, INDEX
기본적으로 ...). 나는 그것에 대해 읽고이 옵션을 발견 했다 .
--disable-keys, -K
이는 실제로 인덱스를 내보내는 것입니다. 그러나 나는 내 해석을 신뢰하고 싶지 않으며 내가 올바르게 해석했는지 확인하고 싶습니다 (또는 잘못된 ;-)). 누구든지 확인할 수 있습니까?
답변:
아니요, 인덱스를 내 보내지 않습니다. 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 ...
LOCK TABLES 다음 줄은
/*!40000 ALTER TABLE `tblAccountLinks` DISABLE KEYS */;
이것이 --disable-keys 옵션이 mysqldump에 포함시키는 것입니다.
또한 모든 INSERT가 완료된 후에 포함됩니다.
/*!40000 ALTER TABLE `tblAccountLinks` ENABLE KEYS */;
UNLOCK TABLES;
주의 사항 # 1
DISABLE KEYS 및 ENABLE KEYS는 테이블을 다시로드하는 동안 고유하지 않은 인덱스를 다시로드하지 못하도록 구현되었습니다. 기본 키 및 고유 키는 비활성화되지 않습니다. INSERT가있는 순간에로드됩니다. 키를 활성화하면 고유하지 않은 인덱스가 정렬을 통해 다시 작성됩니다 (또는 MyISAM 키 캐시를 사용하여 사용 가능한 메모리가 충분하지 않음)
불행하게도 DISABLE KEYS 및 ENABLE KEYS는 InnoDB가 아닌 MyISAM 테이블에서만 작동합니다.
경고 # 2
키를 비활성화 할 필요는 없습니다. --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.)
이로 인해로드 속도가 느려지고 고유하지 않은 인덱스의 인덱스 페이지가 급증 할 수 있습니다.
주의 사항 # 3
실제 InnoDB 테이블 스페이스를 덤프 할 수 있습니다 (MySQL 5.5.12)
-Y, --all-tablespaces
Dump all the tablespaces.
-y, --no-tablespaces
Do not dump any tablespace information.