各種方法之間的性能對比現在有,我在我的腦海三個選項。存放在MySQL日期:爲日期
- >四列(日,月,年,日)=> 28,03,2011年1 我可以輕鬆地搜索和修改這些列沒有MySQL的日期額外的學習。
第二 - >一個日期欄(DD-MM-YYYY)=> 28-03-2011 這僅需要一列,更容易管理,因爲這裏僅有一個WHERE用於搜索日期參數。但我不知道如何在特定的日子裏搜索所有記錄。可以表示過去所有星期一的所有數據或所有28日的所有數據。
- >兩列(Unix時間戳今天的日期,天)=> 1827328721,1 現在,我在這裏可以存儲數據存儲爲一個時間戳,容易做的搜索和比較,通過簡單的獲取日期然後把它變成一個unix時間戳,然後在sql中使用它。一天我可以使用日欄。
現在問題是:
- 如何表現這些方法之間有什麼不同?
- 將如何進行選擇,插入和更新查詢來構建這些不同提議的解決方案?
- 哪一個最適合您的觀點?爲什麼?
請仔細回答所有的三個問題。因爲我在其他地方找不到這些信息,而且我知道堆棧溢出具有出色的程序員,他們可以非常連貫地回答這個問題。這個問題不僅會使像我這樣的新手受益,還會想到其他所有可以用來作爲參考的新手。
感謝提前堆棧溢出社區。
偉大的答案有...謝謝...我有的應用程序是一個小部件,顯示一些元素。記錄每個元素的印象,從而產生插入。所以如果在小部件中有500個元素是500個插入...那麼查看今天,過去幾天的統計數據,以及按照需求的其他隨機日期。你會說這是一個OLAP應用程序。出於某種原因,我找到了第一種方式,不需要太複雜,因爲對於插入,您只需指定日期,月份和年份的三個參數;搜索是一樣的。你能否解釋爲什麼這是非規範化的。 – Vish 2011-03-28 20:52:47
從您的描述來看,您的應用程序聽起來更像OLTP而不是OLAP應用程序......我認爲典型的OLAP應用程序至少要處理數百萬行數據。至於第一種方式......我認爲它是非規範化的,因爲同一條信息(日期)在多個字段中被複制......月份,年份和日期字段都已經在日期列中表示。如果您需要修改日期,則需要在多個地方修改數據以保持一致。 – 2011-03-28 20:55:42
它目前有大約300,000條記錄,每秒約1200個插入/更新,每秒500個選擇。 – Vish 2011-03-28 21:11:08