简单介绍MySQL中索引的使用方法

作者:goldensun 时间:2024-01-15 07:04:50 

数据库索引是一个数据结构,提高操作的速度,在一个表中可以使用一个或多个列,提供两个快速随机查找和高效的顺序访问记录的基础创建索引。

在创建索引时,它应该被认为是将SQL查询的那些列上创建一个或多个索引的列。

实际上,指数也保持主键或索引字段和指针的实际表中每条记录的表型。

用户无法看到索引,它们只是用来加快查询速度,将用于数据库搜索引擎找到的记录速度非常快。

INSERT和UPDATE语句表上的索引需要更多的时间,成为快速对这些表的SELECT语句。究其原因是,当进行插入或更新,数据库以及需要惰性或更新索引值。
简单的唯一索引:

可以创建一个唯一索引的表。唯一的索引意味着两个行不能拥有相同的索引值。这里是语法来创建索引的表


CREATE UNIQUE INDEX index_name
ON table_name ( column1, column2,...);

可以使用一个或多个列上创建索引。例如,我们可以创建一个索引的使用在表tutorials_tbl的tutorial_author列上


CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author)

可以创建一个简单的索引的表。只要省略UNIQUE关键字的查询创建一个简单的索引。简单的索引允许重复表中的值。

如果你想在一列以降序索引值,可以在列名后添加保留字DESC:


mysql> CREATE UNIQUE INDEX AUTHOR_INDEX
ON tutorials_tbl (tutorial_author DESC)

ALTER命令添加和删除索引:

有四种类型的语句表添加索引:

  •     ALTER TABLE tbl_name ADD PRIMARY KEY (column_list) : 这条语句添加一个主键,这意味着索引值必须是唯一的,不能是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);

可以删除任何INDEX通过使用DROP子句和使用ALTER命令。试试下面的例子上面创建的索引下降。


mysql> ALTER TABLE testalter_tbl DROP INDEX (c);

可以删除任何INDEX通过使用DROP子句t和使用ALTER命令。试试下面的例子上面创建的索引x。
ALTER命令来添加和删除PRIMARY KEY:

您可以添加主键,以及在相同的方式中。但要确保主键这是NOT NULL的列上。

这是在现有的表添加主键的例子。这将NOT NULL列,然后将其添加为一个主键。


mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl ADD PRIMARY KEY (i);

可以使用ALTER命令删除主键如下:


mysql> ALTER TABLE testalter_tbl DROP PRIMARY KEY;

要删除索引,这不是一个PRIMARY KEY,所以必须指定索引的名称。
显示索引信息:

您可以使用SHOW INDEX命令,列出所有相关联的索引表。垂直格式输出(指定由\ G)往往是有用的这句话,以避免长时间行重叠:

试试下面的例子:


mysql> SHOW INDEX FROM table_name\G
........

标签:MySQL,索引
0
投稿

猜你喜欢

  • 浅谈Python中的全局锁(GIL)问题

    2021-10-11 04:16:15
  • MySQL索引失效原理

    2024-01-19 01:00:50
  • Python中类的定义、继承及使用对象实例详解

    2023-07-11 17:10:37
  • MySQL大小写敏感导致的问题分析

    2024-01-17 05:41:12
  • Golang语言实现gRPC的具体使用

    2024-05-05 09:26:19
  • 跟老齐学Python之关于类的初步认识

    2022-11-04 15:49:36
  • Design IT.(2),关于好设计

    2008-09-08 12:44:00
  • Python之Numpy的超实用基础详细教程

    2021-12-05 19:06:23
  • Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)

    2022-05-03 10:35:40
  • python Django中models进行模糊查询的示例

    2023-08-02 05:54:09
  • mysql中优化和修复数据库工具mysqlcheck详细介绍

    2024-01-23 21:53:38
  • PyTorch与PyTorch Geometric的安装过程

    2021-12-15 05:00:08
  • python单例模式获取IP代理的方法详解

    2023-11-14 22:22:05
  • tensorflow基于Anaconda环境搭建的方法步骤

    2022-11-04 10:12:58
  • YOLOv8训练自己的数据集(详细教程)

    2021-07-12 20:59:18
  • django1.11.1 models 数据库同步方法

    2024-01-19 11:12:47
  • 表格可读性提升分析

    2010-05-19 13:03:00
  • python如何实现视频转代码视频

    2022-09-09 16:16:56
  • 使用python实现UDP通信方式

    2021-09-19 13:48:35
  • Python如何存储数据到json文件

    2023-11-24 14:31:12
  • asp之家 网络编程 m.aspxhome.com