最新消息: 关于Git&GitHub 版本控制你了解多少?
您现在的位置是:群英 > 数据库 > MySQL数据库 >
mysql中的索引怎样理解?如何使用?
PHP中文网发表于 2021-08-25 17:35 次浏览

    这篇文章主要给大家分享的是mysql中索引的内容,详细介绍了mysql索引以及常见的mysql索引操作,对新手学习mysql索引有一定的借鉴价值,有这方面学习需要的朋友可以参考,下面我们就来学习一下吧。

    MySQL 索引

    MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。

    打个比方,如果合理的设计且使用索引的MySQL是一辆兰博基尼的话,那么没有设计和使用索引的MySQL就是一个人力三轮车。拿汉语字典的目录页(索引)打比方,我们可以按拼音、笔画、偏旁部首等排序的目录(索引)快速查找到需要的字。

    索引分单列索引和组合索引。

    单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。

    组合索引,即一个索引包含多个列。

    创建索引时,你需要确保该索引是应用在 SQL 查询语句的条件(一般作为 WHERE 子句的条件)。实际上,索引也是一张表,该表保存了主键与索引字段,并指向实体表的记录。

    上面都在说使用索引的好处,但过多的使用索引将会造成滥用。因此索引也会有它的缺点:虽然索引大大提高了查询速度,同时却会降低更新表的速度,如对表进行INSERT、UPDATE和DELETE。因为更新表时,MySQL不仅要保存数据,还要保存一下索引文件。

    建立索引会占用磁盘空间的索引文件。占用资源 第二个弊端

    普通索引

    最基本的索引类型,没有唯一性之类的限制。

    创建索引

    这是最基本的索引,它没有任何限制。它有以下几种创建方式:

CREATE INDEX indexName ON table_name (column_name)

    如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length。

    修改表结构(添加索引)

ALTER table tableName ADD INDEX indexName(columnName)

    创建表的时候直接指定

CREATE TABLE mytable(  
 ID INT NOT NULL,   
 username VARCHAR(16) NOT NULL,  
 INDEX [indexName] (username(length))  
 );

    删除索引的语法

DROP INDEX [indexName] ON mytable;

    唯一索引

    唯一索引是不允许其中任何两行具有相同索引值的索引。

    当现有数据中存在重复的键值时,大多数数据库不允许将新创建的唯一索引与表一起保存。数据库还可能防止添加将在表中创建重复键值的新数据。例如,如果在 employee 表中职员的姓 (lname) 上创建了唯一索引,则任何两个员工都不能同姓。

    创建索引

CREATE UNIQUE INDEX indexName ON mytable(username(length))

    修改表结构

ALTER table mytable ADD UNIQUE [indexName] (username(length))

    创建表的时候直接指定

CREATE TABLE mytable(  
 ID INT NOT NULL,   
 username VARCHAR(16) NOT NULL,  
 UNIQUE [indexName] (username(length))  
 );

    使用ALTER 命令添加和删除索引

    有四种方式来添加数据表的索引:

  • 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)

    以上就是整理的MySQL索引的详细介绍了,索引能够大大提高MySQL的检索速度,在MySQL学习中是很重要的内容,希望这篇文章能对大家学习和理解索引有帮助,想要了解更多mysql索引的内容,请关注群英网络其它相关文章!

标签:mysql索引
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
相关信息推荐
2021-08-21 16:15:32 关键词:MySQL索引底层原理
摘要:MySQL索引底层原理怎样理解?MySQL是我们最常的使用数据库之一,但是很多朋友对MySQL索引以及MySQL索引底层原理这些不是很了解,对此,下面小编就给大家来介绍一下,感兴趣的朋友就继..
2021-04-08 16:52:49 关键词:MySQL,索引
摘要:索引用于快速找出在某列中有一特定值的行。不使用索引,MySQL必须从第1条记录开始读完整个表,知道找出相关的行。表越大,查询数据所花费的时间越多。如果表中查询的列有一个索..
2021-04-08 16:52:32 关键词:mysql,索引
摘要:本文主要介绍了MySQL索引使用的原因,以及使用索引后的优缺点。..