旗下导航:搜·么
当前位置:网站首页 > MySQL教程 > 正文

mysql索引怎样用【MySQL教程】,mysql

作者:搜教程发布时间:2019-12-01分类:MySQL教程浏览:27评论:0


导读:MySQL索引的观点索引是一种特别的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据内外一切纪录的援用指针。更浅显的说,数据库索引好比是一本书前面...
MySQL索引的观点

索引是一种特别的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据内外一切纪录的援用指针。更浅显的说,数据库索引好比是一本书前面的目次,能加速数据库的查询速率。上述SQL语句,在没有索引的情况下,数据库会遍历悉数200条数据后挑选相符前提的;而有了响应的索引今后,数据库会直接在索引中查找相符前提的选项。假如我们把SQL语句换成“SELECT * FROM article WHERE id=2000000”,那末你是愿望数据库根据递次读取完200万行数据今后给你效果照样直接在索引中定位呢?(注:平常 数据库默许都邑为主键生成索引)。

引荐课程:MySql教程。

索引分为聚簇索引和非聚簇索引两种,聚簇索引是根据数据寄存的物理位置为递次的,而非聚簇索引就不一样了;聚簇索引能进步多行检索的速率,而非聚簇索引关于单行的检索很快。

MySQL索引的范例

1. 一般索引

这是最基本的索引,它没有任何限定,比方上文中为title字段建立的索引就是一个一般索引,MyIASM中默许的BTREE范例的索引,也是 我们大多数情况下用到的索引。

–直接建立索引
CREATE INDEX index_name ON table(column(length))
–修正表构造的体式格局增加索引
ALTER TABLE table_name ADD INDEX index_name ON (column(length))
–建立表的时刻同时建立索引
CREATE TABLE `table` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
`time` int(10) NULL DEFAULT NULL ,
PRIMARY KEY (`id`),
INDEX index_name (title(length))
)
–删除索引
DROP INDEX index_name ON table

2. 唯一索引

与一般索引相似,差别的就是:索引列的值必需唯一,但许可有空值(注重和主键差别)。假如是组合索引,则列值的组合必需唯一,建立要领和一般索引相似。

–建立唯一索引
CREATE UNIQUE INDEX indexName ON table(column(length))
–修正表构造
ALTER TABLE table_name ADD UNIQUE indexName ON (column(length))
–建立表的时刻直接指定
CREATE TABLE `table` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`title` char(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`content` text CHARACTER SET utf8 COLLATE utf8_general_ci NULL ,
`time` int(10) NULL DEFAULT NULL ,
PRIMARY KEY (`id`),
UNIQUE indexName (title(length))

以上就是mysql索引怎样用的细致内容,更多请关注ki4网别的相干文章!

标签:mysql


欢迎 发表评论: