每个用户的新表?

eom*_*off 11 mysql

我想为网站上的每个新用户创建一个新表,我假设会有很多用户,我相信搜索性能会很好,但维护是什么?

MySQL是没有限制表的数量.

非常感谢.

Pet*_*ans 17

实际上表也存储在表中.因此,在这种情况下,您将在用户表中移动搜索,以在系统表中搜索表.

性能和可维护性将受到严重影响.


Rei*_*ica 11

你为什么要这么做?只需要一个表来表示需要表的每个东西,并添加一个"用户"列.拥有一堆表与一堆行不会使您的性能更好.


Mar*_*rkR 8

这不是一个好主意:

  • 表的最大数量是无限的,但表缓存的大小是有限的,打开表是昂贵的.在MyISAM中,关闭一个表会抛出它的keycache.表现会很糟糕.
  • 当您需要更改架构时,您需要为每个用户执行一个ALTER TABLE,这将是一个不必要的痛苦
  • 搜索没有特定用户的内容将涉及所有或多个用户表之间的可怕的UNION查询
  • 正确构造外键约束将很困难,因为您将不再拥有包含所有用户ID的单个表

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


Joc*_*per 5

为了直接回答您的问题:维护将以新用户注册您网站的速度降低您的热情.不确定您的网站使用的是哪种语言/框架,但在此阶段最好查找一些小例子.我们的猜测是,在您找到的每个示例中,每个新用户都会在表中获取一条记录,而不是数据库中的.