0
I가 내가 값을 1로 시작하는 임시 테이블을 생성하여 몇 가지 최적화를 달성하기 위해 기대했다 request_id
임시 테이블을 만드는 방법
SELECT request_id, exec_datetime FROM requests
WHERE request_id mod 1000 = 1;
에 기본 키를 활용하지 않는 다음 쿼리 모든 방법이 너무 1,000,000 1000 씩 증가가 나는 즉시이 테이블을 생성하는 데 사용하거나 실제로이 테이블을 작성해야합니까 구문이 있나요이
SELECT request_id, exec_datetime FROM requests
WHERE request_id IN (SELECT id FROM table);
같은 것을 수행 할 수 있다고?
편집
나는 쿼리가 빨리이 해결 방법 약 8 배를 실행 발견
CREATE TABLE dummy (
thousand INT(10) UNSIGNED,
UNIQUE(thousand)
);
INSERT INTO dummy (SELECT request_id FROM requests WHERE request_id mod 1000=1);
SELECT r.request_id, r.exec_datetime FROM requests r
JOIN dummy d
ON d.thousand = r.request_id;
내가보기 ... 당신이 조인에 대한 제안을 사용하여 나의 유스 케이스의 성능 차이에 관심이 있다면, 내 편집을 체크 아웃! 또한 - 오늘 제가 게시 한 다른 질문을 볼 수 있습니까? http://stackoverflow.com/questions/13557405/when-running-explain-if-the-field-value-for-key-is-not-null-but-extra-is-blank – user784637
또한 - mysql이 있습니까? 1에서 최대 1 백만까지 시작하는 모든 1000 개의 행을 삽입하는 구문? 'INSERT INTO dummy (SELECT request_id FROM 요청 WHERE request_id mod 1000 = 1);'와 같은 것입니다. 그러나 상한값은'request' 테이블의 최대 행 대신 나에 의해 정의됩니까? – user784637