>  Q&A  >  본문

InnoDB로 변환된 1,500만 행 MyISAM 테이블에서 선택 성능을 향상시키는 방법

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粉388945432P粉388945432410일 전428

모든 응답(1)나는 대답할 것이다

  • P粉576184933

    P粉5761849332023-09-07 10:55:40

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

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

    회신하다
    0
  • 취소회신하다