【发布时间】:2012-06-25 16:37:09
【问题描述】:
我有一个巨大的 mysql 表(用于记录)。比如:
记录器 (sha1) 时间戳 行动
因此预计会有大约 10 万个记录器。每个日志记录平均说 100 行。这将使表很快达到大约 1 亿行。
我需要快速完成插入(实际上是追加),因为很多记录器会同时写入条目。
一般查询将是“给我所有来自 logger 'x' 的日志,按日期排序”。
所以我打算使用mysql分区:http://dev.mysql.com/doc/refman/5.1/en/partitioning.html
我的问题是,如何在分区数和分区大小之间找到平衡?
由于记录器是一个 UUID 并且是一个 sha1 编号,我想让 mysql 只为每个 sha1 值创建一个分区,所以基本上每个记录器都有自己的数据库表文件。
任何其他建议表示赞赏
【问题讨论】:
-
所以事实证明,最大分区数是 1024。现在我想我需要一些算法,将 sha1 值均匀地分成 1024 个不同的分区。或者关于为什么 1024 个分区不是一个好主意的建议。
-
所以我正在考虑按哈希分区:dev.mysql.com/doc/refman/5.1/en/partitioning-hash.html - 但问题仍然存在,如何确定分区数。
标签: mysql database partitioning mysql-management database-performance