2014-03-31 6 views
1

약 5 백만 행의 MyISAM 테이블 (A라고 함)과 약 200 개의 행을 포함하는 MyISAM 테이블 B (기본 키의 A와 조인)가 있습니다. 백만 행. 표 A에는 약 12 ​​개의 필드가 있는데, 대부분 varchar이고 표 B는 2 개의 정수 필드를 포함합니다.MySQL MyISAM - Insert가 로컬보다 LIVE 환경에서 더 오래 걸린다

원래이 테이블을 청크로 행을 삽입 한 스크립트를 실행하여 Windows 8 머신 (4GB RAM - SSD 하드 디스크)에 로컬로 생성했습니다. 그런 다음 데이터베이스를 .sql 파일에 mysqldump했습니다.

그런 다음이 .sql 파일을 내 라이브 환경 (Windows Server 2008, 4GB RAM 및 비 SSD 하드 디스크)으로 전송했습니다. 덤프 파일에서 새 데이터베이스로 데이터베이스를 복원했습니다.

로컬 컴퓨터의 2000 행 (A에 삽입 된 각 행에 대해 B에서 약 80 개)의 업데이트를 수행하면 최대 2 분 (아마도 어쩌면 3)이 소요됩니다. LIVE 환경에서 동일한 행을 업데이트하는 경우 약 1.5 시간이 걸릴 것입니다.

왜 이렇게 큰 차이가 있습니까? 로컬 컴퓨터와 라이브 컴퓨터 모두 동일한 메모리를 가지고 있으며 사양은 매우 유사합니다 ... 내 로컬 컴퓨터에 SSD 하드 드라이브가 있다는 사실에 달려 있습니까? 또는 덤프 파일에서 복원 한 후 LIVE 데이터베이스에서 OPTIMIZE/ANALYZE 테이블 (또는 다른 것?)을 수행해야합니까? 사전에

감사합니다,

+0

사실, SSD 드라이브를 사용하면 표준 기계식 하드 드라이브에 비해 서버의 IO 작업을 크게 향상시킬 수 있으며 때로는 20-100 배 향상시킬 수 있습니다. – bodi0

+0

감사합니다 ... bodi0 ... 그래서 그것이 유일한 이유라고 생각하십니까? 즉, mysqldump에서 복원 한 후 테이블을 최적화/분석 할 필요가 없다는 것입니다. – user3480610

답변

0

실제로 크게 20 개 100 번 사이에 가끔 서버의 IO 작업을 향상시킬 수있는 SSD 드라이브를 사용.

수 있습니다 많은 경우, 특정 상황에서 말하기가 어렵습니다 (테이블이 매우 단편인지, 색인 생성이 제대로 사용되었는지, 등 ...) 병목 현상은 항상입니다. 하드웨어는 항상 입니다. 그러나 실험 할 수는 있지만 SSD로 HDD를 교체 할 경우 가장 큰 차이가 발생할 것이라고 확신합니다. 저는 개인적으로 개발자 머신에서 Intel SSD를 사용하고 데이터베이스 입출력의 차이가 큽니다.

자세한 내용은 this을 참조하십시오.

+0

고마워요! 나는 디스크를 교체하는 것을 고려할 것이다. – user3480610

+0

그러나 나는 데이터베이스 서버에 SSD를 사용하는 것이 좋은 생각이 아니라는 것을 읽었습니다 ... 빨리 깨질 것입니다 ... – user3480610

+0

이것은 많은 요소에 따라 다르며 위의 기사를 읽고 여러 장치를 테스트합니다 실제로 올바른 것을 선택하는 것이 중요합니다. – bodi0