簡體   English   中英

用於活動流的MariaDB動態列?

[英]MariaDB dynamic columns for activity stream?

我有以下問題:

我們要在(MariaDB)數據庫中記錄許多不同但相似的數據項。 所有數據項都有一些通用參數,例如ID,用戶名,狀態,文件Glob,類型,注釋,開始和結束時間戳記。 此外,還有很多(假設在40到100之間)針對每種數據項類型的參數。

我們希望在同一表中具有不同的數據項類型,因為它們將與其他幾種數據(發生時)一起顯示在Web應用程序的單個列表中。 這將顯示為活動流或“ Facebook牆”。

似乎將頂級通用表與下面的特定表結合使用的規范化方法將導致性能下降。 為了顯示活動流,我們將必須執行大量的聯接和聯合操作,並且應用程序將頻繁地對該查詢進行輪詢,因此,快速運行查詢很重要。

那么,就性能和存儲優化而言,哪個是更好的解決方案?

  1. 利用MariaDB的動態列
  2. 只需在一個表中添加我們需要的所有不同種類的列,並接受每種數據項類型將僅使用其中幾列,即其余的將為null。
  3. 還有什么嗎

當常規列中的許多數據為空時是否使用常規列是否重要?

什么時候應該使用動態列,什么時候應該使用常規列?

我相信您應該為要過濾的值使用單獨的列。 但是,您可能有一些未過濾的值。 對於那些對象,最好將它們作為json對象存儲在單個列中(易於編碼/解碼)。

  • 一些列-在WHERE和ORDER BY子句中使用的主要列(但不一定是您可能要過濾的所有列。
  • JSON列或MariaDB動態列。

請參閱我的博客, 了解為什么不使用EAV模式 我專注於如何在JSON中進行操作,但可以說MariaDB的Dynamic Columns更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM