我正在做一个像谷歌广告词这样的跟踪网站。我只做修改。在那个网站上,我看到他们正在为每个月创建表格并将该表格合并为一个表格,这是针对存储有关点击和搜索详细信息的表格以及具有大量记录的合并表格完成的。对于查询,他们只使用了合并的表,其中有数以亿计的记录。使用这样的表有什么好处吗?而且查询需要 10 多分钟才能执行。
2 回答
优点如下,如果您没有得到以下优点,请不要使用它。
轻松管理一组日志表。例如,您可以将不同月份的数据放到单独的表中,用 myisampack 压缩其中的一些,然后创建一个 MERGE 表将它们作为一个表使用。
获得更快的速度。您可以根据某些条件拆分大型只读表,然后将各个表放在不同的磁盘上。以这种方式构建的 MERGE 表可能比使用单个大表快得多。
执行更有效的搜索。如果您确切知道要查找的内容,则可以仅在其中一个基础表中搜索某些查询,并为其他查询使用 MERGE 表。您甚至可以拥有许多使用重叠表集的不同 MERGE 表。
进行更有效的维修。修复映射到 MERGE 表的单个小表比修复单个大表更容易。
立即将许多表映射为一个。MERGE 表不需要维护自己的索引,因为它使用各个表的索引。因此,MERGE 表集合的创建或重新映射速度非常快。(创建 MERGE 表时仍必须指定索引定义,即使没有创建索引。)
如果您有一组表,您可以根据这些表按需创建一个大表,那么您可以根据需要从它们创建一个 MERGE 表。这要快得多,并且可以节省大量磁盘空间。
超过操作系统的文件大小限制。每个 MyISAM 表都受此限制,但 MyISAM 表的集合不受此限制。
您可以通过定义映射到该单个表的 MERGE 表来为 MyISAM 表创建别名或同义词。这样做应该不会对性能产生真正显着的影响(每次读取只有几个间接调用和 memcpy() 调用)。
您可以在基本信息链接、优点缺点链接上阅读更多相关信息。