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

标签 mysql view indexing union

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

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

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

这是我的观点:

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

然后我想在所有地方切换存储过程从“oldBigTable”中选择以从“united_tables_view”中选择...

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

附言

view 和 union 是我的想法,但任何其他创意都是完美的!

来吧!

谢谢!

最佳答案

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

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

关于mysql - 我如何查询拆分为 2 个较小表的表?联盟?看法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2985021/

相关文章:

mysql - 如果未找到行,则返回默认值

mysql - #1054 - 未知列内连接和更新顺序

asp.net-mvc-2 - 如何在 ASP.NET MVC 2 中使用 QueryString 返回 View ?

android - 如何创建带有圆角的 EditText?

python - 在 python 中索引列表并循环这些

python - 获取已排序矩阵的索引

php - 表单提交未将数据输入数据库

mysql - 为什么我要对这个非常简单的 MySQL 查询进行文件排序?

android:聚焦、启用、按下和选择状态有什么区别?

mysql - 如何将带有 Doctrine 2 的 INDEX 添加到列而不使其成为主键?