我们将拥有一个MS SQL Server数据库,每秒读取100次,在一小时内均匀分布2,400个插件,并在一小时内均匀分布14,400次更新。每月环境可能增长1,700行。列数小于20。
我们是一个集装箱码头,有60个起重机,每个起重机在给定时刻处理1个集装箱。这些表的属性是a / o:crane_ID(3个字符),container_ID(11个字符),container_unique_number(double),container_status(1个字符),还有一堆其他细节。
在任何特定时刻,最多60条记录(一台起重机处理一个容器)将“活跃”;其余的是历史数据。
活动记录的更新将使用3列进行读取,其中一个字段(container_unique_number)是唯一的。 100个I / O(来自不同客户端的所有不同进程)扫描所有活动记录或活动的特定container_id。 该过程的一半基本上专用于一台特定的起重机。
我们面临的设计问题是:
谢谢, 西蒙
答案 0 :(得分:3)
一张桌子。这比硬件要多得多。放入SSD来获取日志和数据,你就可以了。
在大多数公司中,分割到多个表格会让你感到震惊,尽管这会带来“假设的”性能提升。有充分的理由。
这些天你可以在桌面硬件上执行每秒100次操作。
答案 1 :(得分:3)
我不担心这种读写级别。它的绝对值非常低
为所有起重机构建一个表:不要将信息编码到表名中。
如果您想删除存档记录,并且如果您需要在实时表中添加一些存档记录,那么在第8天之后通过一些批处理过程就可以完成。如果您不需要实时表中的存档数据,请立即移动它,否则只需使用一个表并查看Slowly changing dimension即可将其保存在一个位置