2013-07-17 89 views
-1

獲取我想從動態創建的表中選擇行,即我們有像web_analytics_mm_yy表(例如:web_analytics_06_13,web_analytics_05_13,web_analytics_04_13等)
數據從動態創建的表

  • web_analytics - >通用名稱的所有表
  • mm_yy - > MONTH_YEAR(每個月會由cron創建)

我需要從所有表讀取記錄,我們有像100萬條記錄每一個表,我們怎樣才能acheive呢? 是否有任何事情可以使用MySQL Query來完成,或者我們可以在PHP中構建SQL查詢? 我想知道什麼是從多個表中獲取動態創建數據的最佳方法還是更好地更改數據庫設計本身?

THX PPL

+2

你爲什麼要把你的數據放在單獨的表中。只需添加一個表示月份的字段。 – Roebie

回答

1

這將是更好的改變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`) 
) 

其中一個月等於毫米和你現在使用他們的一年相當於YY。

+0

請問我可以如何重新設計現有的數據庫結構?另外我認爲我們不能按照我們現有的系統將它列爲明智的 –

+0

已經回答了兩次:爲月/年添加一列並閱讀Postgresql的表繼承。 – Roebie

+0

很酷使用Table分區更好嗎?因爲每個月我們都會插入一百萬條記錄。我想知道一年之後會發生什麼,比如我的數據庫表中有10億條記錄,性能會很慢。所以最好分開表格? –

0

你可能需要一個比mysql多一倍的數據庫。我建議看看http://www.postgresql.org。我有一個表中每月運行一個集合5千萬到8千萬條記錄,並在每個表的子集上進行查詢。 同時您也可以看看http://www.postgresql.org/docs/9.2/static/ddl-inherit.html。它可以幫助您實現數據庫設計。

+0

很酷使用Table分區會更好嗎?因爲每個月我們都會插入一百萬條記錄。我想知道一年之後會發生什麼,比如我的數據庫表中有10億條記錄,性能會很慢。所以最好分開表格? –