2011-02-08 2 views
3

나는 그것에 약 40 012 CREATE INDEX 문장의 파일이 있습니다. 필자는 얼마 전이 파일을 프로덕션 데이터베이스에 공급했으며 현재 명령을 실행 중입니다.인덱스를 쓰는 동안 MySQL을 다시 시작하는 것이 좋지 않습니까?

너무 오래 전 우연히 실수로 내 프로덕션 데이터베이스에서 몇 가지 느린 쿼리를 실행했지만 이제는 작업을 거칠게 두려워 할 수 있습니다. 일반적으로 MySQL을 재시동 할 때 속도가 느린 쿼리를 실행할 때 MySQL을 실행하는 동안 MySQL이이 CREATE INDEX 문을 실행하는 동안 안전한지 알 수 없기 때문에이를 수행하고 싶지 않습니다.

자세한 내용을 보려면 select * from information_schema.statistics where index_name like 'index_%'을 실행하면 대개 몇 분 간격으로 새 인덱스가 표시되는 것을 보았습니다.하지만 일정 시간 동안 14 개의 인덱스에서 멈춘 것으로 보입니다.

서버를 다시 시작해야합니까 안합니까?

+0

답변이 없지만 미래를 위해 알고 계실 것입니다. MySQL ['KILL'] (http://dev.mysql.com/doc/refman/5.0/en/kill)을 사용하여 느린 쿼리를 종료 할 수 있습니다. html) 명령.을 사용하십시오. –

+0

적어도 지금 막 가출 한 쿼리가 없어 졌기 때문에 도움이됩니다. 감사. –

+0

나는 create index가 테이블 데이터와 분리 된 새로운 인덱스 파일을 쓰는다고 믿습니다 ... 그래서 재시작하면 최악의 경우 인덱스가 손상되어 인덱스를 삭제하고 나중에 다시 빌드 할 수 있어야합니다. – timh

답변

1

아무런 문제가 없습니다. show create table FOO을 사용하여 누락 된 색인을 확인하고 적용하십시오. 결국 optimize table을 사용하여 모든 인덱스를 다시 작성할 수 있습니다.

이러한 40 create index 문이 동일한 테이블에있는 경우이 (및 그 이상의) 쿼리를 하나의 테이블로 명확하게 다시 작성해야합니다. 그렇지 않으면 당신은 당신이 할 수있는 것보다 39 배 더 기다리고 있습니다.

관련 문제