mysql多表/多架构性能

时间:2011-10-07 18:45:05

标签: mysql database database-design

快速背景 - 我们有一个表“订单”,每天写入约10k条记录。这是数据库中查询最多的表。为了保持小表,我们计划将大约一周前写入的记录移动到另一个表中。这将通过自动化作业完成。虽然我们知道将历史记录发送到单独的服务器是有意义的,但我们目前只有一个数据库服务器。

订单表位于databaseA中。以下是我们正在考虑的方法:

  1. 创建新的架构数据库B并创建包含历史记录的订单表?
  2. 在databaseA中创建一个表ordershistory。
  3. 如果我们可以获得关于哪种设计可以提供更好性能的指示,那将会很棒?

    编辑:

    的更好表现
    1. 查询当前订单 - 因为它没有被过去的数据压低
    2. 查询历史

2 个答案:

答案 0 :(得分:2)

你可以:

  • 有一个单独的档案表,可能在其他数据库中。这可能会编译查询。
  • 使用partitioning

我不确定MySQL分区的效果如何。对于替代方案,您可以查看PostgreSQL partitioning。大多数商业数据库也支持它。

答案 1 :(得分:1)

我从你的问题中看出你只想处理当前的订单。

过去,在繁忙的网站上使用过3张桌子

新订单, 处理订单, 填写订单,

和主要订单表

订单

所有这些表都与订单表和主键有关。

例如new_orders_id,orders_id processing_orders_id,orders_id ....

使用左连接查找新订单和处理订单应该相对有效