mysql创建索引

admin  2016-07-10 20:26   Hits: 

索引在数据库开发中起到非常重要的作用,通过在表字段中建立索引可以提高查询优化,确保数据的唯一性,以及可以对任何全文索引字段中的大量文本的搜索进行优化,在MYSQL中主要有四种类索引,主键索引,唯一索引,普通索引,全文索引
 
1、主键索引 PRIMARY KEY
主键索引是关系数据库中最常见的索引类型,主要作用是确定数据表里一条特定的数据记录的位置,数据表会根据主键的唯一性来唯一标识每条记录,使用任意两条记录里的主键字段不允许是同样的内容,这样可以加快寻址定位时的速度,最好为每张数据表指定一个主键,但一个表只有一个主键,而且主键的值不能为空,不过可以有多个候选索引。建立主键索引的方法是在建表语句中加入PRIMARY KEY(id)
 
2、唯一索引
唯一索引与主键索引一样,都可以防止创建重复的值,但是,不同之处在于,每个数据表中只能有一个主键索引,但可以有多个唯一索引,如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该使用关键字UNIQUE把它定义为一个唯一索引,这样,在有新记录插入时候,就会自动检测新记录的这个字段,是否已经出现过,创建唯一索引的目的不是为了提高访问速度,而只是为了避免数据出现重复。例如为类别名为categoryName的字段使用唯一索引的语句为
categoryName varchar(50) not null UNIQUE;
 
3、常规索引
常规索引技术是关系数据库查询中最重要的技术,如果要提升数据库的性能,索引优化是首先应该考虑的,因为它能使我们的数据库得到最大性能方面的提升,如果没有索引的数据表,就没有排序的数据集合,要查询数据就需要进行全表扫描,有索引的表是一个在索引列上排序了数据表,可通过索引快速定位记录,在MYISAM数据表中数据数据行保存在数据文件中,索引保存在索引文件中,而INNODB数据表把数据与索引放在同一个文件中。
常规索引也有缺点,例如,占用磁盘空间,还会减慢索引数据列的插入,删除和修改,因此在where,from,orderby group by子句中出现过的数据列最适合创建常规索引。创建常规索引可以用关键字key或index随表创建,也可以在建表后用create index或alter table命令创建,例如建表时没建立索引可以用create index ind on carts(userid,bookid);来创建,创建索引后可以用
show index from carts命令查看索引。drop index ind on carts命令删除索引。
 
4、全文索引
从MYSQL3.23开始支持全文索引FULLTEXT,该索引只能用于MYISAM表,并且只可以在CHAR VARCHAR或TEXT类型的列上创建,基于全文索引获取数据时候,select语句需要使用match() against()函数。全文索引对中文支持不好,一般在实际应用中这种索引用的很少,都是借助第三方来完成全文搜索功能。
唯一索引和主键索引一样
 
上一篇:MYSQL数据表的默认字符集
下一篇:什么是mysql分区,mysql分区如何操作,mysql如何分