MySQL - mehrere Spalte index

Lerne ich MySQL index und festgestellt, dass die index angewendet werden sollte, um jede Spalte in der WHERE-Klausel einer SELECT-Abfrage.

Dann fand ich Multiple-Column-Index vs Mehrere Indizes.

Ersten Q, ich Frage mich, was ist mit mehreren Spalten-index. Ich fand code Balg von Joomla, wird diese mit Mehreren Spalten-Index?

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`)
)

Zweite Q, bin ich korrekt, wenn die denken, dass eine Multiple-Column-Index verwendet wird, auf eine WÄHLEN ?

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
InformationsquelleAutor qaharmdz | 2013-11-28
Schreibe einen Kommentar