現在、大量の電子メール (1 億以上) を Amazon RDS の mysql に保存しようとしています。別の email_bodies テーブルを作成しましたが、大きくなりつつあります。
Amazon RDS を使用すると、約 40,000 件の電子メールで、テーブルのサイズが 1GB を超えました。元の (電子メール) ファイルは Amazon S3 に保存され、本文 (テキストのみ) は検索用に DB に保存されます。ユーザー数が多い場合 (簡単に 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 ;