索引

索引是什么?

索引是对数据库表中一列或多列的值进行排序的一种结构。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;

 

 

 

 

 

 

 

 

posted @   朱饱饱  阅读(7)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示