1、 基础语法
1.1、索引有哪⼏种类型
1、普通索引:基于普通字段建立的索引。
CREATE INDEX <索引的名字> ON tablename (字段名);
ALTER TABLE tablename ADD INDEX [索引的名字] (字段名);
CREATE TABLE tablename ( [...], INDEX [索引的名字] (字段名)
)
2、唯一索引:索引使用的字段必须是唯一的。允许为空。
CREATE UNIQUE INDEX <索引的名字> ON tablename (字段名);
ALTER TABLE tablename ADD UNIQUE INDEX [索引的名字] (字段名);
CREATE TABLE tablename ( [...], UNIQUE INDEX [索引的名字] (字段名)
)
3、主键索引:特殊的唯一索引,不允许是空值。每个表只能有一个主键。
CREATE TABLE tablename ( [...], PRIMARY KEY (字段名) );
ALTER TABLE tablename ADD PRIMARY KEY (字段名);
4、复合索引:多个列上建立的索引。相比多个单个索引,复合索引的开销更小。复合索引可以替代多个单一索引,相比于单一索引,复合索引所需的开销更小。
CREATE INDEX <索引的名字> ON tablename (字段名1,字段名2...);
ALTER TABLE tablename ADD INDEX [索引的名字] (字段名1,字段名
2...);
CREATE TABLE tablename ( [...], INDEX [索引的名字] (字段名1,
字段名2...) )
5:全文索引:少量数据时候,可以使用like模糊查询,如果是大量数据,全文索引的速度>like模糊查询。
CREATE FULLTEXT INDEX <索引的名字> ON tablename (字段名);
ALTER TABLE tablename ADD FULLTEXT [索引的名字] (字段名);
CREATE TABLE tablename ( [...], FULLTEXT KEY [索引的名字]
(字段名)
全文索引是将存储在数据库中的文章或者句子等任意内容信息查找出来的索引,单位是词。全文索引也是目前搜索引擎使用的一种关键技术。指定为 fulltex。
语法是:
select *from user3 where Math(name) AGAINST('a' IN BOOLEAN MODE);
全⽂索引⽅式有⾃然语⾔检索 IN NATURAL LANGUAGE MODE 和布尔检索 IN BOOLEAN MODE两种。
TIPS:
1、全文索引必须在字符串、文本字段上建立。
2、全⽂索引字段值必须在最⼩字符和最⼤字符之间的才会有效。(innodb:3-84;myisam:4-84)。
1.2、最佳左前缀法则</