Amazon RDS中的大量数据

时间:2013-05-30 12:53:08

标签: php mysql database amazon-rds

目前我正在尝试在Amazon RDS中存储大量的电子邮件(100M +)。我已经制作了一个单独的emails_bodies表,但它正在变大。

使用Amazon RDS,大约有4万封电子邮件,表格大小超过1GB。原始(电子邮件)文件保存在Amazon S3上,并且正文(仅文本)仅在数据库中进行搜索。有了更高的用户数(很容易计算超过1亿封电子邮件),我会使用TB的mysql存储。

CREATE TABLE `emails` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `accounts_id` int(10) unsigned NOT NULL,
  `ehash` varchar(32) NOT NULL,
  `subject` text NOT NULL,
  `body` longtext NOT NULL,
  `html` tinyint(1) unsigned NOT NULL,
  `size` int(10) unsigned NOT NULL,
  `datetime` datetime NOT NULL,
  `created` datetime NOT NULL,
  `last_updated` datetime NOT NULL,
  PRIMARY KEY (`id`),
  KEY `ehash` (`ehash`),
  KEY `accounts_id` (`accounts_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

CREATE TABLE `bodies` (
  `bodies_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `bodies_emails_id` int(10) unsigned NOT NULL,
  `bodies_body` longtext NOT NULL,
  PRIMARY KEY (`bodies_id`),
  UNIQUE KEY `bodies_emails_id` (`bodies_emails_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

1 个答案:

答案 0 :(得分:0)

根据我的计算,每个人的平均消耗量为25K。对于电子邮件正文而言,这是非常公平的金额。虽然如果只提取多部分正文中的文本部分,您可以减少该数量,但如果您的唯一目的是搜索。我相信平均尺寸将减少到仅仅1k或更少。