我有一个 InnoDB 表,它有大约 17 个规范化列和大约 600 万条记录。表的大小约为 15GB。表中的查询开始花费太长时间,有时会超时/崩溃。我正在考虑拆分桌子,但很困惑哪种方式会更好。我是否将列拆分为相同/不同数据库上的不同表?或者我是否将表的行拆分到另一个数据库中,但是我怎么知道哪一行在数据库中的位置。
有人提到了一些关于 Map/Reduce 的事情,但让我更加困惑。对此的任何帮助将不胜感激。
谢谢。
我有一个 InnoDB 表,它有大约 17 个规范化列和大约 600 万条记录。表的大小约为 15GB。表中的查询开始花费太长时间,有时会超时/崩溃。我正在考虑拆分桌子,但很困惑哪种方式会更好。我是否将列拆分为相同/不同数据库上的不同表?或者我是否将表的行拆分到另一个数据库中,但是我怎么知道哪一行在数据库中的位置。
有人提到了一些关于 Map/Reduce 的事情,但让我更加困惑。对此的任何帮助将不胜感激。
谢谢。
拆分表以加快查询速度不是我会采取的步骤。我会首先尝试看看您是否无法更改查询或添加索引以使其更快。我建议在您的问题中添加查询和表格,以便我们提供更好的答案。
如果您已经优化了查询和索引,您仍然可以尝试分区。这会在物理上将您的表拆分到不同的硬盘上,但它在逻辑上仍然是一个表。这意味着您不必更改查询,同时仍使查询速度更快。