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.