索引
- 概念:索引是由数据库表中一列或多列组合而成,其作用是提高对表中数据的查询速度。 类似于图书的目录,方便快速定位,寻找指定的内容。
- 索引的优缺点
优点:提高查询数据的速度。
缺点:创建和维护索引的时间增加了,同时占用硬盘空间。 - 索引分类
普通索引 | 是最基本的索引,它没有任何限制 |
---|---|
唯一索引 | 与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一 |
主键索引 | 是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值 |
组合索引 | 指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用组合索引时遵循最左前缀集合 |
全文索引 | 使用FULLTEXT参数可以设置,全文索引只能创建在CHAR,VARCHAR,TEXT类型的字段上。主要作用是提高查询较大字符串类型的速度;只有MyISAM引擎支持该索引,MySQL默认引擎不支持;mysql5.7+ |
- 创建索引
语法:CREATE [UNIQUE|FULLTEXT] INDEX 索引名 ON 表名(字段名[(长度)][ASC|DESC])
#普通索引
CREATE INDEX t_log_moduleid on t_log(moduleid)
SELECT * FROM t_log WHERE moduleid='100401'
#全文索引
ALTER TABLE t_p1_blog
ADD FULLTEXT ft_blog_summary_content(title,summary,content)
select * from t_p1_blog
where match(title,summary,content)against('ssm Linux');
2. 修改索引
语法:ALTER TABLE 表名 ADD INDEX 索引名(字段名[(长度)][ASC|DESC])
ALTER TABLE t_log ADD INDEX t_log_url(url)
SELECT