ç´¢å¼çæ¬è´¨
ç´¢å¼åºæ¬æ¦å¿µï¼æ¯æ°æ®åºç®¡çç³»ç»ï¼DBMSï¼ä¸ä¸ä¸ªæåºçæ°æ®ç»æï¼ä»¥åå©å¿«éæ¥è¯¢ãæ´æ°æ°æ®åºè¡¨ä¸æ°æ®ã
ç解è¦ç¹ï¼é¦å æ°æ®æ¯ä»¥æ件çå½¢å¼åæ¾å¨ç£çä¸é¢çï¼æ¯ä¸è¡æ°æ®é½æå®çç£çå°åãå¦æ没æç´¢å¼çè¯ï¼è¦ä» 500 ä¸è¡æ°æ®éé¢æ£ç´¢ä¸æ¡æ°æ®ï¼åªè½ä¾æ¬¡éåè¿å¼ 表çå ¨é¨æ°æ®ï¼å ¨çæ«æï¼ï¼ç´å°æ¾å°è¿æ¡æ°æ®ãä½æ¯æäºç´¢å¼ä¹åï¼åªéè¦å¨ç´¢å¼éé¢å»æ£ç´¢è¿æ¡æ°æ®å°±è¡äºï¼å 为å®æ¯ä¸ç§ç¹æ®çä¸é¨ç¨æ¥å¿«éæ£ç´¢çæ°æ®ç»æï¼æ们æ¾å°æ°æ®åæ¾çç£çå°å以åï¼å°±å¯ä»¥æ¿å°æ°æ®äºã
ç´¢å¼ç±»åä¸å建
- å¯ä¸ç´¢å¼ï¼Uniqueï¼ï¼é®å¼ä¸è½éå¤ã主é®ç´¢å¼æ¯ä¸ç§ç¹æ®çå¯ä¸ç´¢å¼(é®å¼ä¸è½ä¸ºç©º),ç¨ primay key å建ã
-- å¯ä¸ç´¢å¼ï¼å»ºè¡¨æ¶å建ï¼ç¨unique indexæunique keyå建ï¼
-- æ®éç´¢å¼ï¼å»ºè¡¨æ¶æ·»å ï¼ç¨indexækeyå
³é®åå建ï¼
-- å
¨æç´¢å¼ï¼å»ºè¡¨æ¶æ·»å ï¼ç¨fulltext indexæè
fulltext keyå建
CREATE TABLE `user_innodb` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) DEFAULT NULL,
`gender` tinyint(1) DEFAULT NULL,
`phone` varchar(11) DEFAULT NULL,
`idcard` varchar(11) DEFAULT NULL,
PRIMARY KEY (`id`), -- 主é®ç´¢å¼
UNIQUE INDEX(idcard), -- å¯ä¸ç´¢å¼
KEY `comidx_name_phone` (`name`,`phone`), --èåæ®éç´¢å¼
FULLTEXT INDEX(name) -- å
¨æç´¢å¼
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- æ®éç´¢å¼(Normal)ï¼ä¹å«éå¯ä¸ç´¢å¼ï¼æ¯ææ®éçç´¢å¼ï¼æ²¡æä»»ä½çéå¶ã
-- æ®éç´¢å¼ï¼å»ºè¡¨åæ·»å
ALTER TABLE 表å ADD INDEX ç´¢å¼å称(column);
-- nameåphoneå建èåç´¢å¼
ALTER TABLE user_innodb ADD INDEX comidx_name_phone (name,phone);
-- èåç´¢å¼æå·¦å¹é
EXPLAIN SELECT * FROM user_innodb WHERE name= 'æ亮' AND phone = '15204661800';
EXPLAIN SELECT * FROM user_innodb WHERE name= 'æ亮';
EXPLAIN SELECT * FROM user_innodb WHERE phone = '15204661800';
- å ¨æç´¢å¼(Fulltext)ï¼é对æ¯è¾å¤§çæ°æ®ï¼æ¯å¦æ们åæ¾çæ¯æ¶æ¯å 容ï¼æå KB çæ°æ®çè¿ç§æ åµï¼å¦æè¦è§£å³ like æ¥è¯¢æçä½çé®é¢ï¼å¯ä»¥åå»ºå ¨æç´¢å¼ãåªæææ¬ç±»åçå段æå¯ä»¥åå»ºå ¨æç´¢å¼ï¼æ¯å¦ charãvarcharãtextã
-- å
¨æç´¢å¼å建
create table m3 (name varchar(50), fulltext index(name));
-- å
¨æç´¢å¼ç使ç¨
select * from fulltext_test where match(content) against('å泡å¦é¢' IN NATURAL LANGUAGE MODE);
- â¦
å é¤ç´¢å¼
innodb æ°æ®åç´¢å¼æ件æ¾å¨ä¸ä¸ªæ件ä¸
ALTER TABLE user_innodb DROP INDEX comidx_name_phone;