【问题标题】:Is this MongoDB use case?这是 MongoDB 用例吗?
【发布时间】:2016-05-30 10:22:28
【问题描述】:

我有一个约会网站,我在其中发送每日警报并将警报记录在 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=LAST UNION=(ALERTS_LOG111,ALERTS_LOG112,ALERTS_LOG113)。

优势: 删除速度超级快。

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

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

【问题讨论】:

    标签: mysql mongodb mysql5


    【解决方案1】:

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

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

    【讨论】:

    • 你能在交友网站上推荐最好使用 mongo 的地方吗?
    • 您可以将 to 用于整个网站、个人资料、匹配项等 - 如果出于某种正当理由需要它,它甚至可能是一个有效的选择,但在评论中很难回答这么少信息。继续使用 MySQL 可能是最好的决定。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多