itsource

TokuDB 쿼리에서 임시 테이블을 만드는 속도가 너무 느립니다.

mycopycode 2022. 11. 24. 20:47
반응형

TokuDB 쿼리에서 임시 테이블을 만드는 속도가 너무 느립니다.

1개의 서버에 다음 테이블이 있습니다.

CREATE TABLE `mh` (
  `M` char(13) NOT NULL DEFAULT '',
  `F` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `D` char(6) DEFAULT NULL,
  `A` int(11) DEFAULT NULL,
  `DC` char(13) DEFAULT NULL,
  `S` char(22) DEFAULT NULL,
  `S0` int(11) DEFAULT NULL,
  PRIMARY KEY (`F`,`M`),
  KEY `IDX_S` (`S`),
  KEY `IDX_M` (`M`),
  KEY `IDX_A` (`M`,`A`)
) ENGINE=TokuDB DEFAULT CHARSET=latin1;

같은 테이블이지만 MyISAM 엔진을 다른 유사한 서버에서 사용하고 있습니다.

이 쿼리를 실행할 때:

CREATE TEMPORARY TABLE temp
(S VARCHAR(22) PRIMARY KEY)
AS
(
    SELECT S, COUNT(S) AS HowManyS
    FROM mh
    WHERE A = 1 AND S IS NOT NULL
    GROUP BY S
);

테이블에는 1억 2천만 개의 행이 있습니다.TokuDB를 사용하는 서버는 3시간 후에 쿼리를 실행합니다.22분만에 MyISAM을 사용할 수 있습니다.

TokuDB를 사용한 쿼리는 "약 38230000 행에 대한 쿼리, 약 303929 행 가져오기, 데이터 로딩이 남아 있음" 상태를 표시합니다.

TokuDB 쿼리 기간이 오래 걸리는 이유는 무엇입니까?TokuDB는 정말 좋은 엔진인데 이 쿼리에 무슨 문제가 있는지 모르겠어요.

서버가 MariaDB 5.5.38 서버를 사용하고 있다.

TokuDB는 현재 https://github.com/Tokutek/tokudb-engine/issues/143에서 설명한 바와 같이 이 문에서 벌크패키지 알고리즘을 사용하고 있지 않습니다.이 페이지에 링크를 추가했기 때문에 향후 작업의 일부로 간주됩니다.

언급URL : https://stackoverflow.com/questions/24201286/creating-temporary-table-from-tokudb-query-too-slow

반응형