经由过程给字段增加索引能够进步数据的读取速率,进步项目的并发才能和抗压才能。索引优化时mysql中的一种优化体式格局。索引的作用相当于图书的目次,能够依据目次中的页码疾速找到所需的内容。
下面我们来看看MySQL现在重要有的索引范例:
1、平常索引
平常索引是最基本的索引,它没有任何限定,值能够为空;仅加快查询。能够经由过程以下几种体式格局来竖立或删除:
1)、直接竖立索引
CREATE INDEX index_name ON table(column(length))
2)、修正表构造的体式格局增加索引
ALTER TABLE table_name ADD INDEX index_name ON (column(length))
3)、删除索引
DROP INDEX index_name ON table
2、唯一索引
唯一索引与平常索引相似,差别的就是:索引列的值必需唯一,但许可有空值。如果是组合索引,则列值的组合必需唯一。简朴来讲:唯一索引是加快查询 + 列值唯一(能够有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索引有哪些范例的细致内容,更多请关注ki4网别的相干文章!