需要架构帮助 - MySQL或NoSQL用于包含5400万条记录的表

时间:2013-12-03 20:38:03

标签: mysql database performance database-design architecture

我们有一张包含5400万条记录的表格。这是表结构。

CREATE TABLE `metaplay` (
  `track_id` int(11) NOT NULL DEFAULT '0',
  `user_id` int(11) DEFAULT NULL,
  `completed` int(11) DEFAULT NULL,
  `skipped` int(11) DEFAULT NULL,
  `created` int(11) DEFAULT NULL,
  `updated` int(11) DEFAULT NULL,
  `id` int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`),
  KEY `created` (`created`),
  KEY `updated` (`updated`),
  KEY `skipped` (`skipped`),
  KEY `track_id` (`track_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1

所有这些数据都是数字。此时,我们每分钟有大约300次插入和~100次更新。我们还从该表中提取每日,每周和每月的曲目播放记录。现在我的问题是以下哪一项对于建筑设计和最佳性能会更好。如果你能突出显示硬件细节,我将不胜感激。

  1. 带有4GB Ram的SSD缓存存储中的MySQL
  2. 带有4GB Ram的SSD中的MySQL
  3. 任何NoSQL解决方案
  4. 还有别的吗?
  5. 你也建议像这样的表的任何mysql特定的调整技巧吗?

1 个答案:

答案 0 :(得分:1)

带有4GB Ram的SSD缓存存储中的MySQL。使用mecached获得最佳性能。如果您使用buffer_pool_size = 3GB将存储引擎更改为innodb,您将看到巨大的性能提升。如果可能的话,升级到5.6 innodb在5.6中的表现明显好于以前。 Innodb在5.6中也有本机memcached支持。 阅读here了解更多信息