如何确定mysql分区的数量

时间:2012-06-25 16:37:10

标签: mysql database partitioning mysql-management database-performance

我有一个巨大的mysql表(用于记录)。类似的东西:

记录器(sha1)    时间戳    动作

所以预计会有大约10万个记录器。每次记录平均说100行。这样可以很快地将表格带到大约1亿行。

我需要很快完成插入(真正附加),因为很多记录器一次写入条目。

一般来说,查询将“按日期'命令记录器'x'中的所有日志。

所以我打算使用mysql分区:http://dev.mysql.com/doc/refman/5.1/en/partitioning.html

我的问题是,如何找到分区数和分区大小之间的平衡?

由于记录器是一个UUID并且是一个sha1号,我想让mysql为每个sha1值创建一个分区,所以基本上每个记录器都有自己的DB表文件。

赞赏任何其他建议

1 个答案:

答案 0 :(得分:1)

将某些内容拆分为指定数字的简单方法是使用模数函数。

所以,也许如果你把SHA1哈希的前4个十六进制字符转换成一个整数(产生高达65,025)和mod 1024,就像这样:

aa00 % 1024 = 512

十进制

43520 % 1024 = 512

返回512的所有数字都可以在同一分区中。计算将产生0到1023之间的值。