MySQL 인덱스를 배우고 있고 인덱스가 SELECT 쿼리의 WHERE 절에 지정된 모든 열에 적용되어야한다는 것을 알았습니다.MySQL 초보자 - 여러 열 인덱스
그런데 Multiple Column Index vs Multiple Indexes을 찾았습니다.
첫 번째 질문은 여러 열 인덱스가 무엇인지 궁금합니다. 나는 Joomla에서 코드 울부 짖음을 발견,이 여러 열 인덱스 무엇입니까?
CREATE TABLE `extensions` (
`extension_id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL,
`type` VARCHAR(20) NOT NULL,
`element` VARCHAR(100) NOT NULL,
`folder` VARCHAR(100) NOT NULL,
`client_id` TINYINT(3) NOT NULL,
... ...
PRIMARY KEY (`extension_id`),
// does code below is multiple column index?
INDEX `element_clientid` (`element`, `client_id`),
INDEX `element_folder_clientid` (`element`, `folder`, `client_id`),
INDEX `extension` (`type`, `element`, `folder`, `client_id`)
)
두 번째 질문 하나의 SELECT에 하나의 다중 열 색인이 사용된다고 생각하면 두 번째 질문이 맞습니까? 인덱스에 대한 엄지 손가락의
SELECT column_x WHERE element=y AND clinet_id=y; // index: element_clientid
SELECT ex.col_a, tb.col_b
FROM extensions ex
LEFT JOIN table2 tb
ON (ex.ext_id = tb.ext_id)
WHERE ex.element=x AND ex.folder=y AND ex.client_id=z; // index: element_folder_clientid
예, 필드 1을 기준으로 테스트를 수행하고 다른 필드는 자동으로 인덱싱됩니다. 그러나 element와 field_id를 독립적으로 분리하는 것에 대해서는 확신하지 못합니다. – qaharmdz