好的,刚刚开始在mySQL中分区一些表。有几种不同的方式来描述这一点,但我找不到更实用的方法。 - 每种分区方式对哪种类型的数据产生最佳影响?
或者这不重要吗?
参考:http://dev.mysql.com/tech-resources/articles/performance-partitioning.html
答案 0 :(得分:4)
这完全取决于您遇到的性能问题。
MySQL 5.1的分区只允许您对主键的第一位进行分区。这意味着如果要使用任何有用的分区形式,通常需要使用复合主键。
最常见的用例之一是使旧数据过期,在非分区情况下这可能非常昂贵。在这种情况下,你必须让主键以日期/时间和分区开始。
然后,您可以通过以编程方式删除旧分区来使行到期。
其他情况是您的常见查询可以从分区修剪中受益。
请记住,您无法通过分区修复每个性能问题;这不是魔术。对于不受分区修剪影响的查询,必须查询每个分区。 MySQL并不是并行执行此操作,因此它通常与使用非分区表一样慢。
答案 1 :(得分:3)
让我与您分享这个great post关于基于时间/日期的分区和使用大量数据流进行子分区的信息。它演示了分区如何成为可扩展体系结构的良好解决方案。