数据库每天有40000+条记录

Jar*_*red 2 php database database-design

我正在创建一个数据库,用于跟踪南佛罗里达州一个城市的人均用水量.

有大约40000个用户,每个用户上传每日读数.

我正在考虑设置数据库的方法,让每个用户分开一个表似乎更容易.这样可以简化数据下载,因为服务器不必对包含10百万条目的表进行排序.

我的逻辑是假的吗?
有没有办法索引表名?
有没有其他方法可以设置数据库来提高速度并保持布局足够简单?

- 谢谢你,
贾里德

PS为读数的基本数据是:
-locationID(在我的想法表名)
-Reading
-ReadDate
-ReadTime

pps在这次谈话中,我上传了5k桌子,服务器冻结了.〜.
感谢你的帮助,你好

Gle*_*ton 8

设置成千上万的表并不是一个好主意.您应该维护一个表并将所有条目放在该表中.MySQL可以处理惊人的大量数据.您将遇到的最大问题是您一次可以处理的查询量,而不是数据库的大小.对于您将处理数字的情况,请使用int属性unsigned,以及您将处理varchar适当大小的文本使用的实例(除非文本大量使用text).

处理用户 如果需要识别用户的记录,请设置另一个可能如下所示的表:

  • user_id INT(10)AUTO_INCREMENT UNSIGNED PRIMARY
  • name VARCHAR(100)NOT NULL

当您需要将记录链接到用户时,只需引用用户的记录即可user_id.对于记录信息,我会设置SQL类似于:

  • id INT(10)AUTO_INCREMENT UNSIGNED PRIMARY
  • u_id INT(10)未签名
  • 阅读我不知道你的阅读是什么样的.如果它是一个数字使用,INT如果它的文本使用VARCHAR
  • read_time TIMESTAMP

您还可以将阅读的日期和时间合并到TIMESTAMP.


Flu*_*feh 5

千万不要为每个用户创建一个单独的表.

在标识用户的列和任何其他常见约束(如日期)上保留索引.

考虑一下最后如何查询数据.您如何在一天内总结所有用户的数据?

如果您担心主键,我建议保留一个LocationID,Date复合键.

编辑:最后,(我的意思是这很好)但是如果你问这些关于数据库设计的问题,你确定你有资格参与这个项目吗?看起来你可能已经过了头脑.有时最好知道自己的局限性并让项目通过,而不是以一种为你创造太多工作的方式实现它,人们对结果不满意.再一次,我不是说不要,我只是说你问自己是否可以达到预期的水平.似乎有大量用户不断使用它.我想我说的是,在向数千名用户提供项目的同时学习某些东西可能是一个异常高压的环境.