正确的数据库分区

Cen*_*bit 4 database-design database-recommendation database-tuning partitioning

我之前问过一个问题“存储用户事件数据的正确技术”,我认为正确的答案是创建一个数据库分区。现在,从我读到的内容来看,有不同的分区方法,但是对于这个问题,我们将假设我们正在使用 RDBMS(例如 MySQL)上的日期字段进行水平键分区...(如果您有异议或对此的争论,无论如何都做出贡献)。

基本问题是您如何知道要创建多少个分区?

我知道这是一个相当悬而未决的问题,因为它也将严重依赖于您运行它的硬件,但无论哪种方式,都应该有一些指导方针可以指出更好的性能在哪里,或者这样做的正确方法,甚至你会如何判断这样的事情?我发现的大多数文档都使用诸如“大”、“大”、“很多”之类的术语……这些术语在访问速度、行数、效率与存储或所需硬件方面的含义是什么。是不是从反复试验或观察到的性能开始,如果事情开始变得有点粗糙,您只需添加一两个分区?

我对大型数据库方案中这个看似常见的障碍的意见和矛盾非常感兴趣。

谢谢

Mar*_*ian 5

我会告诉你我在定义“大”、“大”、“很多”这些术语时的经验:

  • 很多是一个需要大约 400 GB 的数据库来存储整月的数据(来自我们所有 Web 应用程序的自定义日志记录信息)

  • big是这个数据库中的一个表,其中包含大部分空间:-)..大约是这个大小的一半(200 GB 一个表,我还记得)

  • large是一整天的数据(大约 12-15 GB) - 这意味着该魔术表的一个分区

这不是规则或最佳实践......但是当您觉得当前的索引策略有点丢失并且似乎没有什么可以使您的查询更快时,我相信是时候考虑分区了。