>  기사  >  데이터 베이스  >  mysql이 레코드 삽입 속도를 최적화하는 방법에 대한 자세한 소개

mysql이 레코드 삽입 속도를 최적화하는 방법에 대한 자세한 소개

黄舟
黄舟원래의
2017-03-17 14:21:141691검색

레코드 삽입 시 삽입 속도에 영향을 미치는 주요 요인은 인덱스, 고유성 검증, 한번에 삽입되는 레코드 개수 등이다. 이러한 상황에 따라 최적화를 별도로 수행할 수 있습니다. 이 섹션에서는 레코드 삽입 속도를 최적화하는 몇 가지 방법을 소개합니다. 아래 에디터로 살펴보겠습니다

레코드 삽입 시 삽입 속도에 영향을 미치는 주요 요인은 인덱싱, 고유성 검증, 한번에 삽입되는 레코드 개수입니다. 이러한 상황에 따라 최적화를 별도로 수행할 수 있습니다. 이 섹션에서는 레코드 삽입 속도를 최적화하는 몇 가지 방법을 소개합니다.

1. MyISAM 엔진 테이블의 일반적인 최적화 방법은 다음과 같습니다.

1. 비어 있지 않은 테이블에 레코드를 삽입할 때 MySQL은 테이블의 인덱스를 기준으로 삽입된 레코드를 인덱싱합니다. 많은 양의 데이터를 삽입하는 경우 인덱싱을 수행하면 레코드 삽입 속도가 느려집니다. 이러한 상황을 해결하기 위해서는 레코드를 삽입하기 전에 인덱스를 비활성화하고, 데이터를 삽입한 후에 인덱스를 활성화하면 됩니다. 인덱스를 비활성화하는 명령문은 다음과 같습니다. ALTER TABLE tb_name DISABLE KEYS; 인덱스를 다시 활성화하는 명령문은 다음과 같습니다. ALTER TABLE table_name ENABLE KEYS; 빈 테이블에서 데이터를 일괄 가져오는 경우 MyISAM 엔진 테이블이 필요하지 않습니다. 데이터를 색인화한 후 가져옵니다.

2. 고유성 검사 비활성화: 데이터가 삽입되면 MySQL은 삽입된 레코드에 대해 고유성 검사를 수행합니다. 이 고유성 확인으로 인해 레코드 삽입 속도도 느려집니다. 이러한 상황이 쿼리 속도에 미치는 영향을 줄이기 위해 레코드를 삽입하기 전에 고유성 검사를 비활성화하고 레코드가 삽입된 후에 활성화할 수 있습니다. 고유성 검사를 비활성화하는 명령문은 다음과 같습니다. SET UNIQUE_CHECKS=0; 고유성 검사를 활성화하는 명령문은 다음과 같습니다. SET UNIQUE_CHECKS=1;

여러 레코드를 삽입하려면 하나의 INSERT 문을 사용하세요. INSERT INTO table_name VALUES(....),(....),(....) 4. 필요한 경우 LOAD DATA INFILE을 사용하여 일괄 가져옵니다. 일괄적으로 데이터를 가져오려면 LOAD DATA INFILE 문을 사용하여 INSERT 문보다 더 빠르게 데이터를 가져올 때.

2. InnoDB 엔진 테이블의 경우 일반적인 최적화 방법은 다음과 같습니다.

1. 고유성 검사를 비활성화합니다.

MyISAM 엔진과 동일하게 SET UNIQUE_CHECKS=0;을 통해 데이터를 가져온 후 이 값을 1로 설정합니다. ​ 2. 외래 키 검사를 비활성화합니다.

데이터를 삽입하기 전에 외래 키 쿼리를 비활성화하고, 데이터 삽입이 완료된 후 외래 키 검사를 재개합니다. 외래 키 검사를 비활성화하는 명령문은 다음과 같습니다. SET FOREIGN_KEY_CHECKS=0; 외래 키 검사를 복원하는 명령문은 다음과 같습니다. SET FOREIGN_KEY_CHECKS=1; 3. 자동 제출을 비활성화합니다.

데이터를 삽입하기 전에 거래 자동 제출을 비활성화하세요. 데이터 가져오기가 완료된 후 자동 제출 작업을 복원하세요. 자동 제출을 비활성화하는 명령문은 다음과 같습니다. SET AUTOCOMMIT=0; 자동 제출을 복원하려면 값을 1로 설정하면 됩니다.

위 내용은 mysql이 레코드 삽입 속도를 최적화하는 방법에 대한 자세한 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.