Mysql SQL:构建表格以适应3d数据的技巧?

Mysql SQL:构建表格以适应3d数据的技巧?,mysql,sql,database,performance,database-normalization,Mysql,Sql,Database,Performance,Database Normalization,我想要一些关于数据库优化的指导。我有一个基本上是每天的调查,有几个滑块(所以浮动0-1)。每天,X个来自同一家公司的人将填写此表,并提交他们的价值观用于此“调查” 我的理解是,您不应该为每个用户创建表,因为这样做效率低且难以管理。因此,我不应该为每个公司创建一个表 我想要的是关于将所有这些数据放在一个表中的指导。以下是一些具体问题: 如果每个公司都有一个5位数的ID,并且我要在同一个表中记录所有数据,其中一列显示ID,另一列带有时间戳,当数据达到数百万或数千万时,从某个公司(也称为5位数ID)

我想要一些关于数据库优化的指导。我有一个基本上是每天的调查,有几个滑块(所以浮动0-1)。每天,X个来自同一家公司的人将填写此表,并提交他们的价值观用于此“调查”

我的理解是,您不应该为每个用户创建表,因为这样做效率低且难以管理。因此,我不应该为每个公司创建一个表

我想要的是关于将所有这些数据放在一个表中的指导。以下是一些具体问题:

  • 如果每个公司都有一个5位数的ID,并且我要在同一个表中记录所有数据,其中一列显示ID,另一列带有时间戳,当数据达到数百万或数千万时,从某个公司(也称为5位数ID)获取所有数据点的效率如何?
  • 表的大小在多大程度上影响访问时的效率
  • 如果我使用5位ID的方法,您是否建议我也为每个“调查条目”(又名行)分配自己的索引
  • 你有什么一般性的建议或想法,可以用我的特殊情况来构建一张表吗

谢谢。

不建议对所有数据使用一个表

我认为您可以使用很少的表(schem,一种关系表示法)对其进行建模:

注:外键表示为引用的\u表\u ID

使用此模式,您可以:

  • 对多家公司进行同样的调查
  • 让一个用户从不同的公司以不同的价值观进行相同的调查
  • 跟踪每个问题
  • 跟踪每个答案
  • 问题没有数据复制当然,一旦完成,您就可以了
  • 当然,您可以编写一个视图,将所有内容都放在一个表中

我发现你的问题太宽泛,无法回答。但是,关于表的大小,几百万行并不是那么大,以至于适当的索引和调整不能让它对您非常有用。不管怎样,谢谢你。这让人放心。我认为这个问题应该在dba.stackexchqange上更好
Users(ID,name, bla, bla, bla) --user's data
Company(ID, Name, bla, bla) --company's data

question(ID,question) --a single question
survey(ID, date, some general stuff about that survey) --track each survey    
answer(ID, question_id, survey_id, user_id, company_id, answer_value) --an answer to a question (in a survey)