暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
MySQL 索引.docx
31
3页
1次
2024-03-07
免费下载
MySQL 索引
数据库索引是一种改善表格操作速度的数据结构。索引可以使用一个或多个列创建,为快速随机
找和有效排序记录的访问提供基础。
在创建索引时,应考虑使用哪些列来进行 SQL 查询,并在这些列上创建一个或多个索引。
实际上,索引也是表的一种类型,它保持主键或索引字段以及到实际表中每个记录的指针
用户无法看到索引,它们只用于加速查询,并且将由数据库搜索引擎用于快速定位记录。
在具有索引的表上,插入和更新语句需要更长的时间,而对这些表进行选择语句会更快。
原因是在进行插入或更新时,数据库需要同时插入或更新索引值。
简单和唯一索引
您可以在表上创建唯一索引。唯一索引意味着两行不能具有相同的索引值。以下是创建表上索引
语法。
CREATE UNIQUE INDEX index_name ON table_name ( column1,
column2,...);
Mysql
Copy
您可以使用一个或多个列来创建索引。
例如,我们可以在 tutorials_tbl 上使用 tutorial_author 创建一个索引。
CREATE UNIQUE INDEX AUTHOR_INDEX ON tutorials_tbl
(tutorial_author)
Mysql
Copy
您可以在表上创建一个简单的索引。只需在查询中省 UNIQUE 关键字即可创建一个简单的索引。
简单索引允许表中存在重复的值。
如果您希望按降序对列中的值进行索引,可以在列名后面添加保留字 DESC
mysql> CREATE UNIQUE INDEX AUTHOR_INDEX ON tutorials_tbl
(tutorial_author DESC)
Mysql
Copy
ALTER 命令用于添加和删除索引
有四种向表中添加索引的语句类型 –
ALTER TABLE tbl_name ADD PRIMARY KEY (column_list) - 句添
PRIMARY KEY ,意味着索引的值必须是唯一的且不能为 NULL
ALTER TABLE tbl_name ADD UNIQUE index_name (column_list) - 这个语句
创建了一个值必须唯一的索引(除了 NULL 值,可以出现多次)。
ALTER TABLE tbl_name ADD INDEX index_name (column_list) - 这个语句添
加了一个普通索引,其中任何值都可以出现多次。
ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list) - 这个语
句创建了一个特殊的 FULLTEXT 索引,用于文本搜索的目的。
下面的代码块是一个在现有表中添加索引的示例。
mysql> ALTER TABLE testalter_tbl ADD INDEX (c);
使用 DROP 子句和 ALTER 命令可以删除任何 INDEX
尝试使用以下示例删除上述创建的索引。
mysql> ALTER TABLE testalter_tbl DROP INDEX (c);
Mysql
Copy
使用 ALTER 命令和 DROP 子句可以删除任何索引。
使用 ALTER 命令添加和删除主键
您也可以以同样的方式添加主键。但是请确保主键适用于非空列。
以下代码块是在现有表中添加主键的示例。这将首先将某一列设置为非空,然后将其添加为主键。
mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);
Mysql
Copy
您可以使用 ALTER 命令删除主键,方法如下
mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;
Mysql
Copy
要删除一个不是主键的索引,必须指定索引名称。
显示索引信息
您可以使用 SHOW INDEX 令列出与表关联的所有索引。垂直格式输出(用\G 指定)经常在这个
语句中很有用,以避免长行的换行问题
尝试以下示例
mysql> SHOW INDEX FROM table_name\G........
of 3
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。