gpt4 book ai didi

mysql - 一个 MySQL 大表或多个(性能)

转载 作者:搜寻专家 更新时间:2023-10-30 20:16:56 25 4
gpt4 key购买 nike

我有一个 CMS,数据库中有 50 个表

我正在开展一个项目,为每位用户提供一份整个 CMS

我有两个解决方案:

  • 解决方案 1:

将名为 site_id 的列添加到我的所有表中,例如用户表

╔════╦═════════╦══════════╦══════════╗
║ id ║ site_id ║ username ║ password ║
╠════╬═════════╬══════════╬══════════╣
║ 1 ║ 20 ║ phoenix ║ 12345 ║
║ 2 ║ 32 ║ sky ║ qwert ║
║ 3 ║ 44 ║ knight ║ !@#$%^ ║
╚════╩═════════╩══════════╩══════════╝
  • 解决方案 2:

为每个用户创建一个单独的表,例如users_20 表

╔════╦══════════╦══════════╗
║ id ║ username ║ password ║
╠════╬══════════╬══════════╣
║ 1 ║ phoenix ║ 12345 ║
╚════╩══════════╩══════════╝

我想知道我的哪一个解决方案更快、更高效?

我想用我的表做不同的工作,比如SelectJOINSUM、...

最佳答案

第一个选项对我来说听起来好多了。这些是我的论点:

  • 在每个用户的不同实例中,可以使用相同的sql查询,只需要改变site_id
  • 报告:如果你想报告任何用户交叉功能,如果您这样做,这将是一场噩梦每个用户都有单独的表
  • 维护:如果您有任何新的以后的版本,您需要将数据库更改应用于所有不同的用户实例(也是噩梦)

您可能会争辩说,如果您有所有用户的表,则不需要按 site_id 进行过滤,因此看起来性能更好,但是当您在所有表中的 site_id 上都有索引时,您应该不会有任何问题。这至少是我的看法。

关于mysql - 一个 MySQL 大表或多个(性能),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34703681/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com