在建立索引之前,大家需要先了解主键和唯一键的概念:
主键: 是用于唯一标识表中每一行数据的列。主键列的值必须唯一且不能为 null(空值)。 唯一键: 是一个或多个列的组合,为这些列提供唯一性。唯一键的值可以为 null,但只能有一个 null 值。
下面大家以建立一个唯一键为例来演示创建索引的过程。
-- 新建一个数据表 CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50) NOT NULL, email VARCHAR(50) UNIQUE NOT NULL ); -- 给 email 列添加唯一键 ALTER TABLE users ADD UNIQUE (email);
第一条 SQL 语句创建了一个名为 “users” 的数据表,该表包含 id、name、和 email 三列。其中 id 列作为主键,email 列作为唯一键。
第二条 SQL 语句使用 ALTER TABLE 命令向 users 表中添加一个唯一键,该键与 email 列相关。注意,大家使用 ADD UNIQUE 语句来将唯一键添加到 email 列。
除了唯一键之外,还有两种索引类型:普通索引和全文索引:
普通索引: 最基本的索引,可以加速 WHERE 表达式的执行。 全文索引: 主要用于全文搜索的查询操作,可以加速文本字段的模糊查询操作。
下面大家新建一个数据表并通过创建普通索引来加速查询:
-- 新建一个数据表 CREATE TABLE products ( id INT PRIMARY KEY, name VARCHAR(50) NOT NULL, price DECIMAL(10, 2) NOT NULL, category VARCHAR(50) ); -- 给 category 列添加普通索引 CREATE INDEX idx_category ON products (category);
第一条 SQL 语句创建了一个名为 “products” 的数据表,该表包含 id、name、price、和 category 四个列。其中 id 列作为主键。
第二条 SQL 语句使用 CREATE INDEX 命令向 products 表中添加一个普通索引,该索引与 category 列相关。注意,大家使用 ON 语句来指定索引应用于哪个列。
通过这些示例,大家可以看到如何为 MySQL 数据表创建索引,并且知道何时应该使用某种类型的索引。这将有助于大家提高数据库的性能,缩短查询时间。