我有一个巨大的mysql表(用于记录)。类似的东西:
记录器(sha1) 时间戳 动作
所以预计会有大约10万个记录器。每次记录平均说100行。这样可以很快地将表格带到大约1亿行。
我需要很快完成插入(真正附加),因为很多记录器一次写入条目。
一般来说,查询将“按日期'命令记录器'x'中的所有日志。
所以我打算使用mysql分区:http://dev.mysql.com/doc/refman/5.1/en/partitioning.html
我的问题是,如何找到分区数和分区大小之间的平衡?
由于记录器是一个UUID并且是一个sha1号,我想让mysql为每个sha1值创建一个分区,所以基本上每个记录器都有自己的DB表文件。
赞赏任何其他建议
答案 0 :(得分:1)
将某些内容拆分为指定数字的简单方法是使用模数函数。
所以,也许如果你把SHA1哈希的前4个十六进制字符转换成一个整数(产生高达65,025)和mod 1024,就像这样:
aa00 % 1024 = 512
十进制
43520 % 1024 = 512
返回512的所有数字都可以在同一分区中。计算将产生0到1023之间的值。