本文共 1788 字,大约阅读时间需要 5 分钟。
主键索引是数据库表中最常用的索引类型之一。创建主键索引可以通过以下两种方式:
ALTER TABLE
命令为某一列添加主键索引例如:
CREATE TABLE t1 ( id INT PRIMARY KEY, name VARCHAR(255));或者:
ALTER TABLE t1 ADD PRIMARY KEY (id);
可以通过SHOW INDEX
或DESCRIBE
命令查看索引信息:
SHOW INDEX FROM t1;
删除主键索引只需使用ALTER TABLE
命令:
ALTER TABLE t1 DROP PRIMARY KEY;
唯一索引的特点是:
例如:
CREATE TABLE t2 ( id INT, unique_col VARCHAR(255) UNIQUE);
删除唯一索引的命令与主键索引类似:
ALTER TABLE t2 DROP INDEX unique_col;
普通索引允许索引列有重复值,但在实际应用中,建议避免为重复性高的列或唯一性较差的列创建普通索引。创建普通索引的命令为:
ALTER TABLE t2 ADD INDEX name_index(name);
删除普通索引的命令:
ALTER TABLE t2 DROP INDEX name_index;
复合索引由多个列组成,常用于高效查询。可以在建表时创建,也可以在建表后添加。
例如:
CREATE TABLE t3 ( id INT, name VARCHAR(255), created_date DATE, PRIMARY KEY (id, name, created_date));
删除复合索引的命令:
ALTER TABLE t3 DROP INDEX name_add_index;
全文索引主要用于对文本或类似数据进行快速检索。仅适用于MyISAM引擎,并且目前全文索引只支持英文内容。
例如:
CREATE TABLE articles ( id INT, title VARCHAR(255), fulltext TEXT, PRIMARY KEY (id), FULLTEXT idx_fulltext (title, fulltext));
在使用全文索引时,查询条件必须使用MATCH
和AGAINST
:
SELECT * FROM articles WHERE MATCH(title, fulltext) AGAINST('查询关键词');
删除全文索引的命令:
ALTER TABLE articles DROP INDEX title;
LIKE 'xyz%'
会使用索引,而LIKE '%xyz%'
不会。如果需要支持模糊查询,建议使用全文索引。可以使用EXPLAIN
命令进行测试:
EXPLAIN SELECT * FROM t1 WHERE id = 1;
如果数据来源于其他计算机,索引可能无效。解决方法是:
通过以上方法,可以有效提升数据库查询性能,减少锁竞争和全表扫描的次数。
转载地址:http://axbfk.baihongyu.com/