从动态创建的表中提取数据


Data fetching from dynamic created table

我想从动态创建的表中选择行,即我们有类似web_analytics_mm_yy的表(例如:web_analytics_06_13、web_analystics_05_13、web_analytics s_04_13等)

  • web_analytics->所有表的通用名称
  • mm_yy->month_year(将由cron每月创建)

我需要从所有的表中获取记录,我们每个表中有大约100万条记录。我们如何获取它?有什么事情可以只使用mysql查询完成,或者我们可以用PHP构建SQL查询吗?我想知道从动态创建的多个表中提取数据的最佳方法是什么?还是改变DB设计本身更好?

Thx ppl

最好将DB设计更改为具有一个月/年的列。你现有的系统设计不好。

也许是类似的设计:

CREATE TABLE IF NOT EXISTS `web_analytics` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`some_data_colum1` varchar(25) NOT NULL,
`some_data_colum2` varchar(25) NOT NULL,
`month` varchar(2) NOT NULL,
`year`  varchar(2)
PRIMARY KEY (`id`)
)

其中月份等于mm,年份等于yy,正如您现在使用的那样。

对于这么多的数据,您可能想要一个比mysql性能稍高的数据库。我建议你看看http://www.postgresql.org.我有一个每月在一个表中运行5000万到8000万条记录的集合,并对该表的每月子集进行查询。还可以看看http://www.postgresql.org/docs/9.2/static/ddl-inherit.html它可以帮助你进行数据库设计。