索引是MySQL中能够高效获取数据的一种数据结构,类似于字典中的目录
索引的目的总的来说就是为了提高数据检索效率,如果没有索引就需要进行全表扫描
具体来说索引有以下优缺点:
索引大致分为以下5类:
5种索引5种索引关键字
CREATE TABLE customer (id INT(10) UNSIGNED AUTO_INCREMENT ,customer_no VARCHAR(200),customer_name VARCHAR(200),
PRIMARY KEY(id),
KEY (customer_name),
UNIQUE (customer_no),
KEY (customer_s1,customer_s2)
);
这里的id就是主键索引,customer_name就是普通索引,customer_name就是唯一索引,customer_s1,customer_s2就是组合索引
注意:在任何数据库当中,主键上都会自动添加索引对象。另外在MySQL中,一个字段上如果有unique约束的话,也会自动创建按索引对象。
create table fulltext_test (
id int(11) NOT NULL AUTO_INCREMENT,
content text NOT NULL,
tag varchar(255),
PRIMARY KEY (id),
FULLTEXT KEY content_tag_fulltext(content,tag) // 创建联合全文索引列
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
全文索引由FULL TEXT定义的索引,只能创建在char、TEXT或者varchar字段上,现在只有MyISAM存储引擎支持全文索引
MySQL 中的索引是通过 B+ 树实现的。B+树是?种多路搜索树,是对B树的?种改进。
B树和B+树的主要区别在于 :