MySQL 外键和性能影响

MySQL Foreign Keys and Performance Impact

我目前正在从头设计一个新的数据库,试图预见随着规模的增加可能出现的任何问题

我正在制作登录系统

我有 tables: (InnoDB, Dynamic)

目前,所有 table 都有来自“用户”的 ID 外键 table - 他们可能有也可能没有自己的 ID也取决于是否需要。 "user_profile" 也有来自 "user" 的 "email" 的外键 table

我还计划在将来添加营销 tables which foreign key from "user" table "id" ,它将做任何事情,从跟踪流量到监控点击等。

我的设置是否会以最佳方式执行?我可以提出任何改进建议以提高性能吗?即我什至需要外键吗?将不胜感激

.

期待您的问题:

为什么要拆分用户和user_profile?

我希望在登录时获得性能提升...也许不是?老实说,外键并不那么熟悉,它们似乎总是阻碍多于帮助,但我真的想从一开始就“正确”地做事

定义“比例”

网站上有 10 万用户,因为如果它达到那个规模,我很确定我可以雇用一个开发团队 lol

编辑:感谢 -1 没有任何评论,很高兴你比我更理解 MySQL

6 次更新 -- 没什么大不了的。应该能够处理数百个用户 每秒 .

如果这些表中的任何一个是“1:1”,则考虑将它们合并。 (如果他们是“1:many”,那么单独的表格是合适的。)

索引对性能很重要。 FOREIGN KEY 是两件事:索引和一致性检查。许多教科书推动使用 FK;我通常只对等效索引感到满意。