mysql 为每个用户提供新的表?

cigdeys3  于 2023-11-16  发布在  Mysql
关注(0)|答案(5)|浏览(129)

我想板条箱为每个新用户在网站上的新表,我认为会有很多用户,我相信搜索性能会很好,但什么是维护??
它是MySQL,它没有表的数量限制。

c0vxltue

c0vxltue1#

实际上,表也存储在表中,所以在这种情况下,您可以将在用户表中搜索移动到在系统表中搜索表。
业绩和利润将受到严重影响。

rqenqsqc

rqenqsqc2#

这不是一个好主意:

  • 表的最大数量是无限的,但表缓存的大小是有限的,打开表是昂贵的。在MyISAM中,关闭一个表会扔掉它的keycache。性能会很糟糕。
  • 当您需要更改模式时,您将需要为每个用户执行一个ALTERTABLE,这将是一个不必要的麻烦
  • 搜索没有特定用户的内容将涉及所有或许多用户表之间可怕的UNION查询
  • 正确地构造外键约束将是困难的,因为您将不再拥有一个包含所有用户ID的表

为什么你确定性能会很好?你测试过吗?

cnh2zyt3

cnh2zyt33#

为什么要这样做呢?只需为每个需要表的内容创建一个表,并添加一个“user”列。拥有一堆表与一堆行并不会让您的性能更好。

uhry853o

uhry853o4#

给予直接回答你的问题:维护会降低你的热情,与新用户注册你的网站的速度相同。不确定你的网站使用的是什么语言/框架,但在这个阶段,最好找一些小的例子。我们的猜测是,在你会找到的每个例子中,每个新用户都会在表中得到一个记录,不是数据库中的

u59ebvdq

u59ebvdq5#

假设一个任务不能有多个用户,我会在短期内使用选项1(一个名为tasks的表,带有user_id外键)。如果是这样,那么你需要一个JOIN表。检查设置一个实际的外键,这会促进数据本身的引用完整性。

相关问题