索引是一种帮助数据库加速查询的数据结构,就像书的索引一样。它可以让MySQL更快地找到需要查询的数据。如果没有索引,那么MySQL就需要遍历整个表,逐行查找,这样会非常慢。
在MySQL中,有各种不同类型的索引,包括主键索引、唯一索引和普通索引等等。在创建表时,可以在列上创建索引,也可以在多列上创建联合索引。
CREATE TABLE users ( id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, email VARCHAR(50) NOT NULL, PRIMARY KEY (id), UNIQUE KEY email (email) );
上面的代码展示了创建一个具有主键索引和唯一索引的用户表。创建主键索引的语句是“PRIMARY KEY”,它会自动为“id”列创建一个唯一索引。而在“email”列上,大家用“UNIQUE KEY”创建了另一个唯一索引。
在查询时,可以使用“WHERE”子句来限制结果。例如:
SELECT name FROM users WHERE email='example@example.com';
上面的代码将从“users”表中查找拥有“example@example.com”电子邮件地址的所有用户的名称。
如果在查询时指定了索引,那么MySQL就会尽可能利用这个索引来优化查询速度。但是,如果条件不在索引列上,那么MySQL就可能无法使用索引。此时,可能需要考虑重构查询或添加新的索引。