索引
索引是对数据库表中一个或多个列的值进行排序的结构。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。
没有索引的情况下,如果执行select * from test_info where id=1000;这条语句会从表中的第一行一直搜索到第1000行,而在这列添加索引之后,就会通过索引快速定位到这一个字段。
索引的分类:
1、分为聚簇索引和非聚簇索引两类聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。
2、唯一索引:不允许两行有相同的值
3、主键索引:为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的,并且不能为空。
4、普通索引: 没有任何的限制。
索引的创建:
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 INDEX index_name (column_list): 添加普通索引,索引值可出现多次。
ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list):该语句指定了索引为 FULLTEXT ,用于全文索引。
索引的删除:
ALTER TABLE tb1_name DROP INDEX index_name
使用 show index from tablename;可以查询已经设置的索引。
下面是索引的添加删除和查看的一个例子:(my_sql下)
总结:
创建索引后不仅能加快检索速度而且还会对检索出来的数据进行排序。
有利必有弊,创建索引会消耗空间,使数据的加载变慢,所以添加索引不要冗余,
适当的添加会大大增加数据库查询的效率。
本文出自 “痕迹” 博客,请务必保留此出处http://wpfbcr.blog.51cto.com/10696766/1790781
原文地址:http://wpfbcr.blog.51cto.com/10696766/1790781