【发布时间】: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 来解决这个问题吗?
【问题讨论】: