약 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 테이블 (또는 다른 것?)을 수행해야합니까? 사전에
감사합니다,
팀
사실, SSD 드라이브를 사용하면 표준 기계식 하드 드라이브에 비해 서버의 IO 작업을 크게 향상시킬 수 있으며 때로는 20-100 배 향상시킬 수 있습니다. – bodi0
감사합니다 ... bodi0 ... 그래서 그것이 유일한 이유라고 생각하십니까? 즉, mysqldump에서 복원 한 후 테이블을 최적화/분석 할 필요가 없다는 것입니다. – user3480610