一、索引的概念
1、查看表的索引
show index from ueb_ebay_online_listing;
2、创建索引
ALTER TABLE tbl_name ADD INDEX index_name (column_list): 添加普通索引,索引值可出现多次。
ALTER TABLE tbl_name ADD PRIMARY KEY (column_list): 该语句添加一个主键,这意味着索引值必须是唯一的,且不能为NULL。
ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): 这条语句创建索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)。
ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):该语句指定了索引为 FULLTEXT ,用于全文索引。
3、索引类型:
从数据结构角度:
B-Tree索引最常见的索引类型,基于B-Tree数据结构。B-Tree的基本思想是,所有值(被索引的列)都是排过序的,每个叶节点到跟节点距离相等。所以B-Tree适合用来查找某一范围内的数据,而且可以直接支持数据排序(ORDER BY)。但是当索引多列时,列的顺序特别重要,需要格外注意。InnoDB和MyISAM都支持B-Tree索引。
从物理存储角度:
聚集索引(clustered index):聚集索引,实际的数据行和相关键值保存在一起(InnoDB);
非聚集索引(non-clustered index):索引和实际的数据是分开的,只不过是用索引指向了实际的数据,这种索引就是所谓的非聚集索引。(MYIASM)
从逻辑角度:
1、主键索引:主键索引是一种特殊的唯一索引,不允许有空值;
普通索引或者单列索引;
2、多列索引(复合索引):复合索引指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用复合索引时遵循最左前缀集合;
3、唯一索引或者非唯一索引;
4、空间索引:空间索引是对空间数据类型的字段建立的索引,MYSQL中的空间数据类型有4种,分别是GEOMETRY、POINT、LINESTRING
5、FULLTEXT即为全文索引。目前只有 CHAR、VARCHAR ,TEXT 列上可以创建全文索引