Mysql数据行结构_MySQL数据库结构:更多列或更多行

我会看一下检索模式来决定方法.

>如果按类别检索主题,那么我将采用第二种方法,在类别字段上定义索引,以便将给定类别的所有记录连续(相对)存储在磁盘上,从而减少磁盘页数要检索.这也是因为与所有类别作为列的表相比,记录大小更小.优点是可以轻松添加更多类别,并且缺点是重复(ID,TopicID)列数据会影响数据的总大小.

>如果按主题检索,那么我会采用第一种方法,定义主题的索引.这将减少每个类别的(ID,TopicID)列值的重复,从而减少要存储的数据的总大小,并且由于行数以每小时数百万计,因此这种尺寸的减小必须是显着的.缺点是需要修改新类别的架构.

编辑:

考虑编辑中的检索模式:

I retrieve top topics and their values per Category so i order by votes_Category_x in case 1.

我理解这是在给定类别中查找具有最大投票数的前N个主题

In case 2 I would look to find max(category) for each topic_id.

这是SELECT TopicID,MAX(投票)FROM TABLE GROUP BY TopicID,Category.

记录的大小对于2百万行和24百万行是不同的,但是,重复ID和TopicID,这肯定会增加数据大小,每个记录增加8个字节.

第一个表存储200万个记录,每个记录大小为60字节(4 * 15英寸),第二个表存储2400万条记录,每个记录大小为16字节(4 * 4英寸).第二个表每小时将添加约62页,每页4KB.在一段时间内似乎是一种担忧.这也将影响由于在中间插入数据而导致的碎片,因为在第二种方法的情况下索引按类别进行组织.

在继续使用其中一个表结构之前,可能值得运行一些性能测试以更好地理解这一点,并且还要考虑添加类别的频率.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值