我们有一个包含 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 次更新。我们还从该表中提取每日、每周和每月的轨道播放记录。现在我的问题是以下哪一项更适合架构设计和最佳性能。如果您也能强调硬件细节,我将不胜感激。
- SSD 缓存存储中的 MySQL,配备 4GB RAM
- SSD 中的 MySQL,配备 4GB RAM
- 任何 NoSQL 解决方案
- 还有什么吗?
对于这样的表,您还建议任何 mysql 特定的调整技巧吗?
最佳答案
MySQL 采用 SSD 缓存存储,配备 4GB RAM。使用 mecached 以获得最佳性能。如果将存储引擎更改为 innodb 并且 buffer_pool_size=3GB,您将看到巨大的性能提升。如果可能的话升级到5.6 innodb在5.6中的性能明显比以前好。 Innodb 在 5.6 中还具有原生 memcached 支持。 阅读 here了解更多信息
关于mysql - 需要架构帮助 - MySQL 或 NoSQL 用于包含 5400 万条记录的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20361190/