use*_*007 1 php mysql database database-design
我正在做一个像google adwords这样的跟踪网站。我只做修改。在那个站点中,我看到他们正在为每个月创建表,并将该表合并为一个表,该表存储了有关点击和搜索详细信息的信息以及合并后的表的记录。合并表,其中包含大量记录。使用这样的表有什么好处吗?查询要花10多分钟才能执行。
优点如下:如果您没有获得以下优点,请不要使用它。
轻松管理一组日志表。例如,您可以将不同月份的数据放入单独的表中,使用myisampack压缩其中的一些数据,然后创建一个MERGE表以将其用作一个表。
获得更高的速度。您可以根据某些条件拆分一个大型只读表,然后将各个表放在不同的磁盘上。以这种方式构造的MERGE表可能比使用单个大型表快得多。
执行更有效的搜索。如果您确切知道要查找的内容,则可以只在基础表之一中搜索某些查询,而在其他表中使用MERGE表。您甚至可以拥有许多使用重叠表集的不同MERGE表。
执行更有效的维修。修复映射到MERGE表的单个较小的表比修复单个大型表要容易。
立即将多个表映射为一个。MERGE表不需要维护其自身的索引,因为它使用各个表的索引。因此,MERGE表集合可以非常快速地创建或重新映射。(即使没有创建索引,在创建MERGE表时仍必须指定索引定义。)
如果您有一组表,可以根据需要从中创建一个大表,则可以根据需要从中创建一个MERGE表。这快得多,并节省了大量磁盘空间。
超出了操作系统的文件大小限制。每个MyISAM表都受此限制约束,但没有MyISAM表的集合。
您可以通过定义映射到单个表的MERGE表来为MyISAM表创建别名或同义词。这样做不会对性能造成任何明显的影响(每次读取仅两次间接调用和memcpy()调用)。