我们有一张有五千四百万张唱片的桌子。这是桌子的结构。
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更新每分钟。我们还从这张表中提取每日、每周和每月的轨道播放记录。现在,我的问题是,以下哪一个将是更好的建筑设计和最佳性能。如果您能突出显示硬件细节,我将不胜感激。
另外,对于这样的表,您是否建议过特定于mysql的调优技巧?
发布于 2013-12-03 20:42:08
啊,有什么问题?
有五千四百万个记录的表格
一张小桌子好的。我这里有85亿行。
我们有!300次插入,每分钟更新100次
嗯。小的。我知道呀。我在这里有一个,每天大约有5亿次插入。那是每分钟347222.2222222222。
所有这些都是在库存硬件上运行的。我是认真的。THough并不像你建议的那样低端。
但你的标准完全错了。五千四百万在25年前是巨大的。今天,它很小,除非有人试图在迷你虚拟机上运行数据库服务器。
例如,具有5gb内存的非服务器。
通常--如果您需要分析而这不是文档样式的数据--请坚持使用MySql,避免使用NoSql数据库,并学习关系理论,以便您知道在那里做什么。
SSD很棒,但我不确定5gb内存是否合适-拜托,这比一个像样的工作站还少。
对于每日/每周/每个月的汇总,我将制作每日汇总,然后将其用作更大的汇总的基础。最多一个月。31天-所以大部分的工作是每天做一次(在休息时间)。我强烈地会重新考虑使用易趣水平的廉价二手硬件,尽管--这就是规格的样子。
发布于 2013-12-03 20:42:07
该表的原始数据为1.4GB (54m * 28字节),索引将添加一些数据,但不太大,比如索引为5GB。
所以不管你做什么:为什么只有4GB的内存?为增长留出32 it的空间。
SSD上的MySQL将非常快。NoSQL是一个时髦的词,没有什么意义,所以除非你有特定的产品,否则我会忽略你问题的那一部分。
https://dba.stackexchange.com/questions/54403
复制相似问题