InnoDB로 변환된 1,500만 행 MyISAM 테이블에서 선택 성능을 향상시키는 방법
P粉388945432
P粉388945432 2023-09-06 19:30:08
0
1
476

MySQL 버전 8.0.32-0ubuntu0.20.04.2

저는 SELECT 실행을 회피하는 것이 아니라 SELECT 성능을 향상시키려고 노력하고 있습니다.

으아악

1,500만 행을 삽입하세요.

으아악

테이블 변경 big_table ENGINE=INNODB;

으아악

**innodb_buffer_pool_size=8G 설정(128Mb에서)(MySQL 다시 시작)**

CREATE TABLE big_table (
pk INT AUTO_INCREMENT PRIMARY KEY,
field1 VARCHAR(255),
field2 VARCHAR(255),
field3 mediumtext,
field4 BIGINT,
KEY idx_field4 (field4)
) ENGINE=MyISAM CHARSET=utf8mb3;

P粉388945432
P粉388945432

모든 응답(1)
P粉576184933

Wher 절 없이 MyISAM 테이블에서 SELECT COUNT(PK) 또는 SELECT COUNT(*)를 실행하는 것은 매우 특별한 경우입니다. 모든 행을 계산하지 않고 매우 빠르기 때문입니다. InnoDB의 동일한 쿼리는 말 그대로 모든 행을 계산하기 때문에 느립니다.

그러나 인덱스 필드에서 where 절이 작동하면 InnoDB가 MyIsam보다 성능이 뛰어난 것 같습니다. 이게 99%의 사용 사례인 것 같습니다...

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿