我正在尝试制作一个程序,以便在服务器不在线时对其ping通一些服务器和服务,并将其写入数据库。因此,在制作时,我只是想知道哪种制作方法是最好的,我很可能会要求这三个项目,但是有时候我却不需要。
这是我当前的架构:
CREATE TABLE webservice_historylog (
id_webServiceConnection BIGINT PRIMARY KEY AUTO_INCREMENT,
id_Location varchar,
datetime_Connect datetime,
response_TimeMs int,
status_Code varchar(5),
status_Message varchar(255)
);
CREATE TABLE internet_historylog (
id_internetConnection BIGINT PRIMARY KEY AUTO_INCREMENT,
id_Location varchar,
datetime_Connect datetime,
response_TimeMs int,
status_Code varchar(5),
status_Message varchar(255)
);
CREATE TABLE postgresql_historylog (
id_postgresqlConnection BIGINT PRIMARY KEY AUTO_INCREMENT,
id_Location varchar,
datetime_Connect datetime,
response_TimeMs int,
status_Code varchar(5),
status_Message varchar(255)
);
我可以用它制成一个视图表。
还是应该放在一张桌子下面?像这样。
CREATE TABLE connection_historylog (
id_Connection BIGINT PRIMARY KEY AUTO_INCREMENT,
id_Location varchar,
connectionType varchar, # Internet, WebService, Databases
datetime_Connect datetime,
response_TimeMs int,
status_Code varchar(5),
status_Message varchar(255)
);
我想要的东西:
提高了长期目标的性能,因为它像一分钟一样活跃。这也将影响我以后如何调用此数据。可以询问更多信息。
答案 0 :(得分:1)
通常,应将相似的表放在一个表中。随着时间的推移,这具有多个优势:
要使这样的环境最有效,您将需要索引甚至分区。具体索引取决于数据的使用方式。
答案 1 :(得分:1)
单个表,但是主要是因为这可能是“正确”的方式。
其他说明:
INSERT
个是微不足道的。甚至1 /秒都是微不足道的。每秒1000次即可获得成功。SELECTs
之后,我们就可以讨论INDEXes
。PARTITIONing
有任何用处。