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




浙公网安备 33010602011771号