mysql - 从mysql中具有相同字段的多个表中检索数据

标签 mysql

我有一个表“ABC_history”,它存储了数百万条记录的历史,
所以我想创建像

这样的月份和年份明智的表格
ABC_history_January_2012
ABC_history_February_2012 
ABC_history_march_2012
.
.
.
ABC_history_December_2012

我想使用条件日期在“2012-01-15”和“2012-02-15”之间获取数据, 我如何使用单一查询 或是否有任何其他方式来存储大数据?

想在 postgreSQL 中实现相同的继承概念。引用例如Best way to store huge log data

最佳答案

你的数据结构很差。不幸的是,进行通用查询的唯一方法是联合所有表:

select *
from ((select * from ABC_history_January_2012) union all
      (select * from ABC_history_February_2012) union all 
      (select * from ABC_history_march_2012) union all
      . . .
      (select * from ABC_history_December_2012)
     ) abch
where date is between '2012-01-15' and '2012-02-15';

非常昂贵的查询。

你要的是表分区。这允许您将一个表存储在多个“部分”中。每个部分将由日期范围确定。然后,任何使用日期的查询都只会读取所需的数据。您可以阅读有关表分区的更多信息 here .

关于mysql - 从mysql中具有相同字段的多个表中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21429667/

相关文章:

c# - 解析巨大的 CSV 并加载到 MySQL DB

mysql - 销售总额...枢轴还是转置?

mysql - Rails3 作用域的两个参数

mysql - 如何使用 nodejs 和 ajax 使 typeahead 显示来自 mysql 的信息

mysql - 加入或子查询到 "detect missing records"?

php - 标准化数据库的工具?

MySQL 避免求和运算的空值?

php - 来自多个上传表单的数组,上传图像然后插入数据库(PHP,MySQL)

python - 在Python中循环列表时如何避免覆盖SQL UPDATE语句?

php - 如何查找数据库中是否存在具有特定值的字段