在MySQL中,索引是對于表中某個字段的排序,用于提高查詢效率的數據結構,減少數據庫的I/O操作。
MySQL的索引分為四種類型:主鍵索引、唯一索引、普通索引和全文索引。
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`email` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`),
KEY `name` (`name`),
FULLTEXT KEY `search` (`name`,`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
1.主鍵索引
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`email` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
每張表只能有一個主鍵索引,主鍵索引可以加速表中數據的檢索。
2.唯一索引
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`email` varchar(255) DEFAULT NULL,
UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
唯一索引要求表中某一列的值必須唯一,可以為表中的任意列創建唯一索引。
3.普通索引
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`email` varchar(255) DEFAULT NULL,
KEY `name` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
普通索引在數據檢索中和唯一索引類似,只不過允許在被索引的列中出現重復的值。
4.全文索引
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(255) NOT NULL,
`email` varchar(255) DEFAULT NULL,
FULLTEXT KEY `search` (`name`,`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
全文索引可以加速文本數據的搜索,適用于對文章、日志等文本數據進行檢索。
上一篇dockerjava8
下一篇純css 雪花