如何查询拆分为 2 个较小表的表?联盟?看法?

Posted

技术标签:

【中文标题】如何查询拆分为 2 个较小表的表?联盟?看法?【英文标题】:how can i query a table that got split to 2 smaller tables? Union? view? 【发布时间】:2010-06-06 16:59:36 【问题描述】:

我有一个非常大的表(近 2,000,000 条记录),它被拆分为 2 个较小的表。一个表只包含上周的记录,另一个包含所有其余的(很多......)

现在我得到了一些存储过程/函数,用于在拆分之前查询大表。

我仍然需要他们来查询两个表的联合,但是似乎创建一个使用两个表之间联合语句的视图会永远持续......

这是我的看法:

CREATE VIEW `united_tables_view` AS select * from table1 union select * from table2;

然后我想将存储过程从'oldBigTable'中选择的所有位置切换到从'united_tables_view'中选择...

我尝试添加索引以缩短时间,但没有任何帮助... 有什么想法吗?

PS

视图和联合是我的想法,但任何其他创意都是完美的!

来吧!

谢谢!

【问题讨论】:

【参考方案1】:

如果有理由不这样做,您应该合并表而不是不断地查询它们。 这是 *** 上关于这样做的问题:

How can I merge two mysql tables?

如果您需要将它们分开,您可以使用以下语法:

SELECT table1.column1, table2.column2 FROM table1, table2 WHERE table1.column1 = table2.column1;

这是一篇关于何时使用 SELECT、JOIN 和 UNION 的文章 https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-1050307.html

【讨论】:

以上是关于如何查询拆分为 2 个较小表的表?联盟?看法?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 N 个较小的矩形上拆分一个大矩形以使其看起来随机? [关闭]

SQL性能问题.现在表设计可以把一个大表按类型(各类型字段不相同)拆分成多个小表.拆分后比较方便.

了解MySQL联表查询中的驱动表,优化查询,以小表驱动大表

返回一个大查询还是几个较小的查询更好?

将大减速器拆分为较小的减速器

将庞大的 sql 表逻辑拆分为较小的表