我想从动态创建的表中选择行,即我们有像web_analytics_mm_yy这样的表格(例如:web_analytics_06_13,web_analytics_05_13,web_analytics_04_13等)
我需要从所有表中获取记录,我们在每个表中都有100万条记录我们如何才能实现它? 是否可以使用mysql Query完成任何事情,或者我们可以在PHP中构建SQL查询? 我想知道从动态创建的多个表中获取数据的最佳方法是什么?或者更改数据库设计本身更好吗?
Thx ppl
答案 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。它可以帮助您使数据库设计正常工作。