这是MongoDB的用例吗?

时间:2016-02-18 10:02:06

标签: mysql mongodb mysql5

我有一个约会网站,我在其中发送每日警报和日志提醒ALERTS_LOG。

CREATE TABLE `ALERTS_LOG` (
  `RECEIVERID` mediumint(11) unsigned NOT NULL DEFAULT '0',
  `MATCHID` mediumint(11) unsigned NOT NULL DEFAULT '0',
  `DATE` smallint(6) NOT NULL DEFAULT '0',      
  KEY `RECEIVER` (`RECEIVER`),
  KEY `USER` (`USER`)
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 INSERT_METHOD=LAST UNION=(`ALERTS_LOG110`,`ALERTS_LOG111`,`ALERTS_LOG112`)

插入逻辑:我创建了合并表,每个子表如ALERTS_LOG110存储0-15天记录。在每1日和16日,我创建一个新表并更改mergeMyisam的定义。 示例:INSERT_METHOD =最后一个UNION =(ALERTS_LOG111ALERTS_LOG112ALERTS_LOG113)。

优势: 删除速度非常快。

此方法的问题: 1.当我更改定义时,我经常遇到站点故障问题,因为当我更改定义时,索引需要进入缓存并且所有选择查询都被卡住了。 2.因插入过多而选择锁定问题。

那么,我可以查看MongoDB来解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

不,不是真的。重新设计应用程序以使用两种不同的数据库类型,因为此日志表上的性能似乎是一个糟糕的选择。

为什么要记录这么多条目并不是很清楚,但从表面上看,可能会查看partitioning in MySQL并按日或按周对表进行分区,然后删除这些分区。删除仍然超级快,并且不会因为您不会每天更改对象名称而停机。