索引
索引是什么?
索引是对数据库表中一列或多列的值进行排序的一种结构。MySQL索引的建立对于MySQL的高效运行是很重要的,
索引可以大大提高MySQL的检索速度。
B+树:是通过二叉查找树,再由平衡二叉树,B树演化而来
创建索引的三种方式
# 方式一: create table t5( id int primary key auto_increment, name varchar(4), email varchar(10), unique key uni_name(name), index xxx(email) ); # 方式二: alter table t5 add index xxx(email); # 方式三: create index yyy on t5(name);
增加聚集索引主键
alter table s1 add primary key(id);
增加普通索引
alter table s1 add index xxx(email);
ndex_together = [ ("name", "publish"), ] # 联合唯一索引
-
index_together
:这是一个列表,其中包含了需要一起建立联合索引的字段名称元组。 -
在这个例子中,为模型中的
name
和publish
字段创建了一个联合索引。这意味着查询时如果同时涉及到这两个字段,索引可以提高检索效率。
创建唯一索引
CREATE UNIQUE INDEX uk_users_name ON t_users(name);
#uk_users_name:自由定义的唯一索引名称
#t_users:表格名称
#name:字段名称
unique_together = (("name", "publish"),)
:这个设置意味着在数据库级别上,name
和 publish
这两个字段的组合必须唯一,
即不允许存在两行记录拥有相同的 name
和 publish
值的组合。这也是一种约束,确保了数据库数据的一致性和完整性。
当尝试插入重复组合的记录时,数据库会抛出违反唯一性约束的错误
注意:唯一索引对null不起作用,也就是字段为null的话可以重复;
注意:唯一索引对" “不起作用,也就是字段为” "的话不可以重复;
-- 删除唯一索引
drop index uk_users_name;
添加 if EXISTS,语句可重复执行不报错;
-- 删除唯一索引
drop index if EXISTS uk_users_name;
3 创建、删除唯一键约束
使用约束CONSTRAINT 创建不重复索引;和唯一索引效果一样;
-- 创建唯一键约束
ALTER TABLE t_users ADD CONSTRAINT uk_users_name1 UNIQUE (NAME);
-- 删除唯一键约束
alter table t_users drop constraint if EXISTS uk_users_name1;
删除主键:若主键有自增应先取消自增
alter table t5 drop primary key;
alter table t5 drop index xxx;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南