首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每2分钟插入一次数据的数据库

每2分钟插入一次数据的数据库
EN

Database Administration用户
提问于 2013-05-31 08:32:47
回答 1查看 2.5K关注 0票数 0

我有一个可以开发成PHP和mysql的站点,在那里,我每两分钟从服务器获取10个xml并将数据插入我的数据库。

这个数据是简单的字符串(最多10)和大约20个字段( string (10))。每隔两分钟,我就会插入20个字段的10条记录( xml的数量可以增加)。

在这个数据库中,我有其他表,但最大的表是每两分钟插入一次记录。

我想知道按年分开数据库是否更好: database_2013,database_2014.当年份发生变化时自动创建数据库,因为我不希望这个数据表每年都能生成Gb的数据库,十年后,我有一个非常大的数据库,在那里进行查询非常缓慢。

一个数据库(对于一个数据库来说不是一个很大的Gb问题)或更多的数据库除以年份?

这是我实现的表:

代码语言:javascript
复制
CREATE TABLE IF NOT EXISTS `station` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `station_id` int(11) unsigned NOT NULL,
  `dewpoint` varchar(5) NOT NULL,
  `heat_index` varchar(10) NOT NULL,
  `pressure` varchar(10) NOT NULL,
  `relative_humidity` varchar(5) NOT NULL,
  `temperature` varchar(5) NOT NULL,
  `wind_degrees` varchar(10) NOT NULL,
  `wind_direction` varchar(10) NOT NULL,
  `wind_speed` varchar(5) NOT NULL,
  `windchill` varchar(10) NOT NULL,
  `rain_rate_in_per_hour` varchar(10) NOT NULL,
  `rain_rate_hour_high_in_per_hour` varchar(10) NOT NULL,
  `rain_storm_in` varchar(10) NOT NULL,
  `leaf_wetness` varchar(2) NOT NULL,
  `created` datetime NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
EN

回答 1

Database Administration用户

回答已采纳

发布于 2013-05-31 11:25:51

每2分钟插入10行将导致(24*60/2)*每天10行(7200) ->,这不是一个值得担心的大值。而且,你可以考虑“未来-10年”,但不要因为过早的优化而浪费时间。

如果您唯一关心的是每2分钟插入一次数据的这个表,那么创建额外的数据库(每年一个)是没有意义的,所以让我们继续使用这个表(Table_A)。

现在,由于这个表的时间会慢慢增加,并且您希望查询运行得很快,所以您有很多选项:

  1. 您可以根据特定的标准对表进行分区。因为您将该表用于“气象站”,而且您的数据是时间序列值,所以您最好的选择是按台站_id进行分区,然后通过已创建进行分区。
  2. 创建一个Table_A_Archive,在这里您可以移动那些在Table_A中保存的数据。
  3. 您打算在Table_A中保存数据多长时间?删除已过时的旧行对您的应用程序有意义吗?

..。诸若此类。

最佳选择:通过台站_id和已创建对现有表进行分区,每个站点都有"A“分区,每个月有"B”分区,以及总共有AxB可定位的分区数。对Table_A进行分区之后,为Table_A_Archive执行相同的操作,并且在每年年底,将数据从Table_A移动到Table_A_Archive。

**重要:**在制定分区模式之后,请记住,所有查询都应该在WHERE子句中具有必要的条件,这样查询就可以作为可定位的小分区访问。

例如。

代码语言:javascript
复制
Select AVG(pressure)
FROM Table_A
WHERE station_id = 123
AND created between '2013-01-01 00:00:00' AND '2013-02-01 00:00:00'

上面的查询将只触及分区"123“和2个子分区,为期1个月和2个月。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/43506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档