做一个ping程序,要把ping的结果放到数据库中。是这样的:
我ping 1000台机,每10分钟就把这10分钟内的结果(丢包率)放到数据库中,不知道怎么设计这个数据库。
我有几个想法:
1、一个表,1000个字段(即 一个ip 对应 一个字段)
不知道这么多字段,sql受的了不?会不会有什么不良反应??2、一个表,1000条记录(即 一个ip 对应 一条记录),每10分钟,动态添加一个字段 放入 丢包率。
这样跑10几20小时,字段值更多...3、1000个表...不管怎么想都觉得字段值很多,表的数据量也很多。
有没有人给点好点的建议??PS:不要说用文件保存,我要保存在数据库中。
我ping 1000台机,每10分钟就把这10分钟内的结果(丢包率)放到数据库中,不知道怎么设计这个数据库。
我有几个想法:
1、一个表,1000个字段(即 一个ip 对应 一个字段)
不知道这么多字段,sql受的了不?会不会有什么不良反应??2、一个表,1000条记录(即 一个ip 对应 一条记录),每10分钟,动态添加一个字段 放入 丢包率。
这样跑10几20小时,字段值更多...3、1000个表...不管怎么想都觉得字段值很多,表的数据量也很多。
有没有人给点好点的建议??PS:不要说用文件保存,我要保存在数据库中。
解决方案 »
- 求SQL行列转换
- 请教一条sql语句,更新一个字段,更新值来至于子查询
- 关于触发器的问题!!
- 高分求解 帮帮忙
- sql server的表用FlexCell表格控件显示和操作的一些问题 在线等!!!
- 用powerdesigner 12无法将PDM直接生成到连接得数据啊?
- sql2000的问题
- 如何判断一个字段中 一个字符串的数量
- 我想查询出符合查询条件的记录中的第11-20条记录,where子句应当如何增加限制条件?(用于分页显示)
- 请问在sql server 2k里怎样才能拥有写master.messages表的权限?
- ACCESS中如何在一个查询生成表中 增加一列编号
- sql 语句 getDate()
192.168.xx.xx1 20% 22% 0% 0%
192.168.xx.xx2 30% 54% 0% 0%
192.168.xx.xx3 40% 6% 0% 0%
192.168.xx.xx4 50% 0% 0% 0%
......
1 192.168.xx.xx1 1 20%
2 192.168.xx.xx2 1 30%
3 192.168.xx.xx3 1 40%
4 192.168.xx.xx4 1 50%
5 192.168.xx.xx1 2 23%
6 192.168.xx.xx2 2 0%
7 192.168.xx.xx3 2 0%
8 192.168.xx.xx4 2 0%
9 192.168.xx.xx1 3 0%
10 192.168.xx.xx2 3 0%
这样呢?
这点数据根本对数据库造成不了压力.
ip 时间 丢包率
ip和时间做主键
如果用 MYSQL 的话是否就比较多了呢?
id ip data time rateoflost
1 192.168.4.1 2009-03-24 07:40 15%
2 192.168.4.1 2009-03-24 08:00 10%
3 192.167.4.2 2009-03-24 07:40 12%
在ip上建立索引,然后,以IP为分区字段,对表进行分区;
在data上建立索引,便于日后数据分析。
这样的处理方式很好了。建议不要涉及到列的增加,这样太灵活,日后分析也是个巨大的隐患。
id不要设置为主键的号。否则分区的时候会不能分区,因为如果有主键的话,分区必须是以主键为分区标志。它就仅仅作为一个序号用就是了。