MySQL을 사용하는 경우“ALTER TABLE… DISABLE KEYS;” 마지막 진술?


12

mysql INNODB 테이블에서 키를 비활성화 (인덱싱 중단)하면 해당 설정이 얼마나 오래 지속됩니까?

다음과 같은 쿼리의 경우 :

ALTER TABLE users DISABLE KEYS;

스크립트가 끝날 때 키가 다시 활성화됩니까? 또는 인덱싱을 명시 적으로 다시 켤 때까지 지속됩니까?


이 질문은 다른 사람들이 DISABLE KEYS, ENABLE KEYS 및 InnoDB에 대해 무언가를 깨닫도록 도와주는 +1이 필요합니다.
— RolandoMySQLDBA


답변:


7

Fine Manual (읽기 가치가 있음)은 해당 문장의 효과가 해당 ALTER TABLE ... ENABLE KEYS문장이 실행될 때까지 지속됨을 나타냅니다 .


6

실제로 ALTER TABLE ... DISABLE KEYS 및 ALTER TABLE ... ENABLE KEYS가 작동하지 않습니다 !!!!

2011 년 2 월 13 일에이 문제를 해결했습니다.

나는 추가 파기를하고 InnoDB의 모회사 인 InnoBase Oy (Oracle Borg에서 7/9 이전)에서 사실을 발견했습니다.

이 링크는 DISABLE KEYS를 수행하고 외래 키를 함께 비활성화하는 것을 제안합니다. 비록 둘 다 불필요하다고 생각하지만, 이것은 누군가를 위해 분명히 효과가있었습니다.

업데이트 2011-07-18 12:35 EDT

이것은 MySQL에 남은 악을 노출시키기 때문에 매우 좋은 질문입니다. mysqldump 프로그램은 생성 주위에 DISABLE KEYS와 ENABLE KEYS를 맹목적으로 떨어 뜨리고 스토리지 엔진에 관계없이 모든 테이블에로드합니다. 비활성화 키 및 활성화 키는 MyISAM에 대해 제대로 작동하므로 InnoDB 테이블에서 작동하지 않습니다 (최상의 경우에는 효과가 없음).이 알려지지 않은 사실은 MySQL 커뮤니티에서 더 잘 문서화해야합니다. 예, MySQL은 Oracle로 알려진 은하 제국의 한가운데에 있습니다. 앞으로의 문서 변경 사항에 대해서는 숨을 쉬지 않을 것입니다.


3
진술하는 것이 한 가지입니다. 대문자와 굵게를 사용하여 소리를 지르는 것은 다소 과도하며 완전히 필요하지 않습니다.
— John Gardeniers

1
@John : 지나치게 열성적인 것 같습니다. 나는 누구에게도 화 내지 않습니다. InnoDB에 대한 ALTER TABLE DISABLE / ENABLE 키는 잘 문서화되어 있지 않습니다. 오라클도 개선하지 않을 것입니다.
— RolandoMySQLDBA

@RolandoMySQLDBA mysqldump가 DISABLE KEYS와 ENABLE KEYS를 덤프 파일에 넣는 것을 피할 수있는 해결 방법이 있습니까?
— pahnin 2012
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.