मैं MySQL अनुक्रमणिका सीख रहा हूं और पाया कि सूचकांक को SELECT क्वेरी के WHERE खंड में नामित किसी भी कॉलम पर लागू किया जाना चाहिए।MySQL शुरुआती - एकाधिक कॉलम इंडेक्स
तब मुझे Multiple Column Index vs Multiple Indexes मिला।
पहला प्रश्न, मैं सोच रहा था कि एकाधिक कॉलम इंडेक्स क्या है। मुझे जूमला से कोड मिल गया, क्या यह एकाधिक कॉलम इंडेक्स है?
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 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 के आधार पर कुछ परीक्षण प्रकार कर रहा हूं और अन्य फ़ील्ड स्वचालित रूप से अनुक्रमित है। लेकिन मैं स्वतंत्र रूप से विभाजन तत्व और field_id के बारे में निश्चित नहीं हूँ। – qaharmdz