mysql索引是什么类型
独一索引与普通索引相似,不一样的就是:索引列的值必需独一,但允许有空值。要是是组合索引,则列值的组合必需独一。简略来说:独一索引是加快查询 + 列值独一(可以有null)。以通过下列几种方式来新建:
1)、新建独一索引
CREATE UNIQUE INDEX indexName ON table(column(length))
2)、修改表构造
ALTER TABLE table_name ADD UNIQUE indexName ON (column(length))
3、主键索引
主键索引是一种特别的独一索引,一个表只能有一个主键,不允许有空值。简略来说:主键索引是加快查询 + 列值独一(不成以有null)+ 表中只要一个。
个别是在建表的时候同时新建主键索引:
CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, PRIMARY KEY(ID) );
固然也可以用 ALTER 下令。记住:一个表只能有一个主键。
4、组合索引
组合索引指在多个字段上新建的索引,只要在查询前提中运用了新建索引时的首先个字段,索引才会被运用。运用组合索引时遵循最左前缀汇合。
可以说:组合索引是多列值组成的一个索引,专门用于组合搜寻,其效率大于索引合并。
ALTER TABLE `table` ADD INDEX name_city_age (name,city,age);
5、全文索引
全文索引主要用来查寻文本中的关键字,而不是直接与索引中的值比拟较。fulltext索引跟其它索引大不雷同,它更像是一个搜寻引擎,而不是简略的where语句的参数匹配。fulltext索引配合match against操纵运用,而不是个别的where语句加like。它可以在create table,alter table ,create index运用,不外当前只要char、varchar,text 列上可以新建全文索引。值得一提的是,在数据量较大时候,现将数据放入一个没有全局索引的表中,然后再用CREATE index新建fulltext索引,要比先为一张表创立fulltext然后再将数据写入的速度快许多。
1)、新建表的适合增加全文索引
CREATE TABLE `table` ( `id` int(11) NOT NULL AUTO_INCREMENT , `title` char(255) CHARACTER NOT NULL , `content` text CHARACTER NULL , `time` int(10) NULL DEFAULT NULL , PRIMARY KEY (`id`), FULLTEXT (content) );
2)、修改表构造增加全文索引
ALTER TABLE article ADD FULLTEXT index_content(content)
3)、直接新建索引
CREATE FULLTEXT INDEX index_content ON article(content)
简略来说:全文索引是对文本的内容进行分词,进行搜寻。
以上就是mysql索引是什么类型的细致内容,更多请关注 百分百源码网 其它相干文章!