1

好的,刚开始在 mySQL 中对一些表进行分区。有几种不同的方法来描述这一点,但我找不到更实用的方法。- 每种分区方式对哪种类型的数据效果最好?

还是真的不重要?

参考:http ://dev.mysql.com/tech-resources/articles/performance-partitioning.html

4

2 回答 2

4

这完全取决于您遇到的性能问题。

MySQL 5.1 的分区只允许您对主键的第一位进行分区。这意味着如果您想使用任何有用的分区形式,通常需要一个复合主键。

最常见的用例之一是使旧数据过期,这在未分区的情况下可能非常昂贵。在这种情况下,您必须使主键以日期/时间和分区开头。

然后,您可以通过以编程方式删除旧分区来使行过期。

其他情况是您的常见查询能够从分区修剪中受益。

请记住,分区无法解决所有性能问题;这不是魔术。对于不能从分区修剪中受益的查询,必须查询每个分区。MySQL 不会并行执行此操作,因此它通常与使用非分区表一样慢。

  1. 准确确定您的性能问题是什么
  2. 确定多少改进足以修复它们
  3. 确定在其他用例中可以容忍多少性能回归
  4. 在各种不同设置的生产级硬件上对生产级数据进行测试、测试、测试和测试
  5. 重复直到你满意为止。
  6. 进行相关功能测试;释放!
于 2010-03-22T22:36:42.117 回答
3

让我与您分享这篇关于基于时间/日期的分区和具有巨大数据流的子分区的精彩帖子。它演示了分区如何成为可扩展架构的良好解决方案。

于 2010-11-22T17:30:02.237 回答