mysql中主键和外键的区别 主键外键定义和关系对比

记得有一次,我在一家初创公司做数据库设计时,老板惊慌地来找我,问:“小王,我可以用电子邮件作为这个用户表的主键吗?”我看着他,心想,这是个大问题。
我告诉他:“老板,用电子邮件是不行的。
电子邮件是可以改变的,不同的用户可以使用同一个电子邮件。
我们需要使用自增整数ID,稳定高效。
”他点点头,说道:“那外键呢?我们需要关联排序表,怎么办?” “外键必须引用Users表的主键,即自增ID,这样才能保证Orders表中的用户信息与Users表正确关联。

那天晚上我熬夜查看了数据库表中的数据。
有一天我突然想到,如果公司发展壮大,数据量增加,优化这些主键和外键就得提上日程了。
比如优化外键索引或者高并发的性能问题。
等等,还有一件事。
我曾经见过一个案例,一家大公司的外键太多,导致批量删除操作延迟了几个小时。
接下来,您需要提前计划以防止这种情况发生。

mysql索引的分类有哪几种

2 02 3 年,我朋友的公司使用MySQL进行项目,他们需要了解许多不同类型的索引。
常规索引(例如 BTREE 索引)是最常见的,可以匹配列值、范围或前缀搜索,并且可以具有多个列。
唯一索引确保唯一的列值和快速搜索。
主键索引,特殊类型,唯一且非空,自动添加。
外键索引指向另一个表的主键,建立关系并创建强约束。
全文索引、FTS 索引、文本和数字字段的全文搜索。
哈希索引将键值映射到数据页,等式匹配速度快但占用空间大。
空间索引,地理空间数据索引,位置,范围,距离搜索。
复合索引、多列、多列顺序都很重要。
他们还提到了空间索引,说是2 02 3 年才学的,蛮有用的。
算了,你自己想办法吧。