- MySQLi 教程
- MySQLi - 首页
- MySQLi - 简介
- MySQLi - PHP 语法
- MySQLi - 连接
- MySQLi - 创建数据库
- MySQLi - 删除数据库
- MySQLi - 选择数据库
- MySQLi - 创建表
- MySQLi - 删除表
- MySQLi - 插入查询
- MySQLi - 选择查询
- MySQLi - WHERE 子句
- MySQLi - 更新查询
- MySQLi - 删除查询
- MySQLi - LIKE 子句
- MySQLi - 排序结果
- MySQLi - 使用连接
- MySQLi - 处理 NULL 值
- 获取和使用 MySQLi 元数据
- MySQL
- MySQL - 安装
- MySQL - 管理
- MySQL - 数据类型
- MySQL - 正则表达式
- MySQL - 事务
- MySQL - ALTER 命令
- MySQL - 索引
- MySQL - 临时表
- MySQL - 克隆表
- MySQL - 使用序列
- MySQL - 处理重复数据
- MySQLi 有用资源
- MySQLi - 有用函数
- MySQLi - 快速指南
- MySQLi - 有用资源
- MySQLi - 讨论
MySQLi - 索引
数据库索引是一种数据结构,它可以提高表中操作的速度。索引可以使用一列或多列创建,为快速随机查找和有效排序访问记录提供基础。
在创建索引时,应考虑哪些列将用于执行 SQL 查询,并在这些列上创建一个或多个索引。
实际上,索引也是一种类型的表,它保存主键或索引字段以及指向实际表中每个记录的指针。
用户无法看到索引,它们仅用于加速查询,并由数据库搜索引擎用于非常快速地定位记录。
INSERT 和 UPDATE 语句在具有索引的表上花费更多时间,而 SELECT 语句在这些表上变得更快。原因是在执行插入或更新时,数据库也需要插入或更新索引值。
简单索引和唯一索引
您可以在表上创建唯一索引。唯一索引意味着两行不能具有相同的索引值。以下是创建表索引的语法。
CREATE UNIQUE INDEX index_name ON table_name ( column1, column2,...);
您可以使用一列或多列来创建索引。例如,我们可以使用 NAME_INDEX 在 tutorials_inf 上创建索引。
CREATE UNIQUE INDEX NAME_INDEX ON tutorials_inf(name);
您可以在表上创建简单索引。只需从查询中省略 UNIQUE 关键字即可创建简单索引。简单索引允许表中存在重复值。
如果要按降序对列中的值进行索引,可以在列名后添加保留字 DESC。
mysql> CREATE UNIQUE INDEX NAME_INDEX ON tutorials_inf (name DESC);
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 tutorials_inf ADD INDEX (id);
您可以使用 DROP 子句和 ALTER 命令删除任何索引。尝试以下示例以删除上面创建的索引。
mysql> ALTER TABLE tutorials_inf DROP INDEX (c);
您可以使用 DROP 子句和 ALTER 命令删除任何索引。尝试以下示例以删除上面创建的索引。
ALTER 命令添加和删除主键
您可以以相同的方式添加主键。但请确保主键作用于非 NULL 列。
以下是在现有表中添加主键的示例。这将首先使列成为 NOT NULL,然后将其添加为主键。
mysql> ALTER TABLE tutorials_inf MODIFY id INT NOT NULL; mysql> ALTER TABLE tutorials_inf ADD PRIMARY KEY (id);
您可以使用 ALTER 命令删除主键,如下所示
mysql> ALTER TABLE tutorials_inf DROP PRIMARY KEY;
要删除不是 PRIMARY KEY 的索引,必须指定索引名称。
显示索引信息
您可以使用 SHOW INDEX 命令列出与表关联的所有索引。垂直格式输出(由 \G 指定)通常与此语句一起使用,以避免长行换行:
尝试以下示例
mysql> SHOW INDEX FROM table_name\G ........