mysql - 这种 SQL 结构(在 mysql 数据库中)在现实世界模型中是否有效?

标签 mysql sql database database-design multi-tenant

我希望从以前在现实环境中使用过复杂 mysql 的人那里得到关于现实环境中 web 应用程序的示例 mysql 结构的反馈。

例子~

教育管理应用程序。 80,000 名用户。 每个用户都得到他自己的数据库,其中包含用于 -消息 -上传 -成绩 -信息

和其他功能的更多表格

我想知道的是,在这种情况下,我们将不胜感激

-这个数据库模型是否有效? (基本上像 80,000 个数据库)还是有更好的方法(我有这种的感觉)? - 这需要什么样的专用服务器? 80,000 个数据库,每个数据库有 10-15 个表,其中包含大量表,所有 80,000 人每天访问该网站 20-30 次,持续 10-20 次 session

最佳答案

开始运行。

现在!

开个玩笑,不要那样做。不要为每个用户创建一个数据库。那是管理、维护和查询的 hell 。如果您需要知道哪些用户昨天登录了怎么办?你会查询每个数据库吗??

你需要的结构是一样的,只是数据量变了。只需一个数据库,看看它的运行情况,然后进行优化/微调。

我不想引用这句话,但在你的情况下它完全适用:

Premature optimization is the root of all evil (Donald Knuth)

您知道瓶颈在哪里之前,不要尝试优化您的解决方案。

尽您所能为您的数据库建模。担心您的约束、PK、FK、索引。做你的家庭作业。然后运行您的数据和软件。只有这样你才会看到它在哪里有效,哪里有问题。这一刻,你优化。

只有当你知道敌人是谁时才攻击它。

关于mysql - 这种 SQL 结构(在 mysql 数据库中)在现实世界模型中是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9612173/

相关文章:

database - 如何在 visual studio (express) 中生成数据库模式图?

mysql - 什么会导致所有 MySQL 连接休眠?

mysql - sql查询减号运算

sql - PostgreSQL 找到 CREATE TABLE 语句

sql - 删除 SQL 查询中的重复行

java - 避免 Hibernate LazyInitializationExceptions 的策略

php - 如何清理MySQL表中的编码

mysql - 半径接受所有,但拒绝客户端?

sql - 使用 MIN 更新

PHP 和 MySQL - 如果值不为空则循环查询