【问题标题】:MySQL: Large table splittingMySQL:大表拆分
【发布时间】:2011-04-14 16:07:52
【问题描述】:

我在数据库中有一个巨大的表,我想在物理上将它分成几个部分,以维护数据库方案。

例如,表名为 TableName,有 2 000 000 行。

我想把这张桌子分成四部分,但我想用同样的方式处理这张桌子,所以

select [Column List] from TableName where [Filter]

insert into TableName ([Column List]) values([Values])

update TableName [Updates] where [Filter]

delete from TableName where [filter]

拆分表格后的工作方式与之前相同。基本上我希望我的数据库在不同的线程中处理我的查询。我怎样才能做到这一点?

提前致谢。

【问题讨论】:

  • 正如 Hammerite 分区所提到的,这将是更好的解决方案。但是,2 000 000 并没有那么多,而且具有良好的索引和设计良好的查询根本不会运行缓慢。
  • 问题是几个选择是由一个自动项目完成的,该项目在几个服务器的每一个上运行在五个线程上,并且表也有很多列。有时在数据库中执行一些简单的命令需要很长时间。因此,我们不是在谈论运行选择查询,而是在谈论每秒运行数十个甚至更多查询,将数据复制到网站上显示的从属副本。因此,在我们的例子中,分区是唯一的选择。该表已编入索引。

标签: mysql large-data


【解决方案1】:

也许你应该看看partitioning

【讨论】:

    【解决方案2】:

    如果您正在考虑将数据复制到单独的从站/副本;考虑通过二进制日志来实现这一点,这样副本将读取二进制日志来进行复制,而不是手动或以编程方式进行。

    【讨论】:

      猜你喜欢
      • 2013-10-19
      • 2023-03-07
      • 2013-07-28
      • 1970-01-01
      • 1970-01-01
      • 2011-06-26
      • 1970-01-01
      • 2012-08-18
      相关资源
      最近更新 更多