我很想听听一些关于 mysql 数据库设计的意见或想法。
基本上,我有一个 tomcat 服务器,它从现场大约 1000 个系统接收不同类型的数据。这些系统中的每一个都是独特的,并且将报告独特的数据。
发送的数据可以分为频繁数据和不频繁数据。不经常发送的数据每天只发送一次,变化不大 - 它基本上只是基于配置的数据。
频繁数据,系统开启时每 2-3 分钟发送一次。并表示系统的当前状态。
这些数据需要为每个系统建立数据库,并且可以在任何给定时间从 php 页面访问。基本上对于该领域的任何系统,PHP 页面都需要能够访问该客户端系统上的所有数据并显示它。换句话说,数据库需要显示系统的状态。
信息本身都是基于文本的,而且有很多。配置数据(变化不大)是键值对,目前大约有 100 个。
我的设计理念是拥有 100 多列,每个系统有 1 行来保存配置数据。但我担心有这么多列,主要是因为如果我将来需要添加列,这不是太面向未来。如果我这样做,我也担心插入速度。这可能会爆发到一个 2000 行 x 200 列的表,每秒访问大约 100 次,所以我需要在我的初始设计中满足这一点。
我还想知道,是否有任何设计理念可以满足基于引擎的频繁更改和很少更改的数据。这是有道理的,因为我想保持插入/更新时间较短,而且我不太关心 php 的 SELECT 时间。
我也很想知道如何拆分数据。即,如果可以以几种不同的方式对频繁更改的数据进行分类,我应该有一堆表,代表数据并在选择时加入它们吗?我对此很担心,因为我可能必须制作一份报告来显示所有系统之间的共同属性(即显示具有特定条件的所有系统)。
我希望我在这里提供了足够的信息,以便有人指出我正确的方向,任何关于此事的帮助都会很棒。或者,如果有人做过类似的事情并且可以提供建议,我将非常感激。谢谢大家:)
~ 丹