将表格分开以将经常访问的数据与很少访问的数据分开是否有任何意义?

时间:2012-03-19 08:00:03

标签: mysql sql performance

假设我有一个包含60个奇数列的表,但99%的时间我只选择其中的3个或4个。将表拆分为一个4列表和一个56列表与行之间的1对1对应关系是否有意义。这会省点什么吗?从4列表中获取1000个4列行与从60列表中获取1000个4列行之间是否存在性能差异?

我正在使用“MySQL 14.14 Distrib 5.1.49 for debian-linux-gnu”

2 个答案:

答案 0 :(得分:1)

在其他DBMS中,您可以通过垂直分区实现此目的。有了这样的功能,您可以垂直地将表拆分为多个分区 - 意味着按列拆分。

这比手动操作更有优势。它不会破坏您的表设计,并且对于为这些表编写SQL的程序员来说是透明的。 这项工作是在较低的水平上完成的,这很好。

如果你真的需要额外的表现,我会等。也许MySQL支持一天或另一天的垂直分区。只要你没有必要,就不要破坏你的表格布局。

答案 1 :(得分:0)

这取决于您的数据库性能。如果您具有较高的缓存命中率,那么您的表被缓存,那么分割表就没有意义了。只有对于表中的许多选择,数据库需要从磁盘读取数据,那么这可能是个好主意。