MySQL에서 수백만 개의 레코드가있는 테이블이 있습니다.> InfoBook에 가져온 데이터는 wiki 페이지의 노트를 사용하여 가져오고 아무런 문제가 없습니다! 여기 SELECT 쿼리에 대한 테이블 구조의 브라이트 하우스 최적화
지금은 선택 쿼리를 450 번, 때마다 'A'와 같은 제약 조건을 사용중인 다른를 실행하는 데 필요한 테이블 구문CREATE TABLE `myTable` (
`a` varchar(255) COLLATE latin1_bin DEFAULT NULL,
`b` varchar(255) COLLATE latin1_bin DEFAULT NULL,
`c` bigint(20) NOT NULL,
`d` bigint(20) NOT NULL,
`e` int(10) NOT NULL
) ENGINE=BRIGHTHOUSE
입니다 :
SELECT d,e FROM `myTable` WHERE a = 'myString';
목표는 전체 쿼리가 호출되는 시간을 단축하는 것입니다. 하지만 문제가 있습니다. 선택 쿼리를 약 450 번 실행하면 평균적으로 각 쿼리의 길이는 0.52 초가됩니다.
그러나 MySQL을 통해 실행할 때 쿼리 당 약 1.7 밀리 초가 걸립니다!
어떻게하면 MySQL 시간을 이길 수 있을까요? ''대신 ''대신 'IN'절을 사용해야합니까, 'a'의 ontop을 추가로 선택해야합니까? 예 :
SELECT a,d,e FROM `myTable` WHERE a IN ('myString1','myString2'.... etc)