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

时间:2013-07-17 07:41:29

标签: php mysql mysqli

我想从动态创建的表中选择行,即我们有像web_analytics_mm_yy这样的表格(例如:web_analytics_06_13,web_analytics_05_13,web_analytics_04_13等)

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

我需要从所有表中获取记录,我们在每个表中都有100万条记录我们如何才能实现它? 是否可以使用mysql Query完成任何事情,或者我们可以在PHP中构建SQL查询? 我想知道从动态创建的多个表中获取数据的最佳方法是什么?或者更改数据库设计本身更好吗?

Thx ppl

2 个答案:

答案 0 :(得分:1)

最好将数据库设计更改为包含月/年的列。你所拥有的系统是一个糟糕的设计。

也许类似的设计:

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。

答案 1 :(得分:0)

对于该数据量,您可能需要比mysql更高性能的数据库。我建议你看看http://www.postgresql.org。我在一个表中每月运行一个集合50到8000万条记录,并对该表的每月子集进行查询。 在你看的时候看看http://www.postgresql.org/docs/9.2/static/ddl-inherit.html。它可以帮助您使数据库设计正常工作。

相关问题