我是資料庫系統(tǒng)設計的新手。在閱讀了很多文章後,我真的很困惑我們應該有 1 個表格而不進行分片或分區(qū)的限制是多少。我知道提供通用答案確實很困難,事情取決於諸如
之類的因素但是當有人問這個問題
如果行數(shù)少於一百萬,並且行大小增加數(shù)千,那麼選擇很簡單。但當選擇涉及數(shù)百萬或數(shù)十億行時,事情就會變得更加棘手。
注意:我在問題中沒有提到延遲數(shù)。請 根據(jù)您可以接受的延遲數(shù)回答。另外,我們正在討論結構化資料。
我不確定,但我可以添加 3 個具體問題:
注意:在整個問題中,假設我們將選擇 SQL 解決方案。另外,如果提供的用例在邏輯上沒有意義,請忽略。目的是獲取數(shù)字方面的知識。
有人可以幫忙了解基準是什麼嗎?您目前正在從事的專案中的任何實際數(shù)字都可以表明,對於具有如此多查詢的大型資料庫,這就是觀察到的延遲。任何可以幫助我證明針對特定延遲的一定數(shù)量的查詢選擇表數(shù)量的合理性的任何東西。
MySQL 的一些答案。由於所有資料庫都受到磁碟空間、網(wǎng)路延遲等限制,其他引擎可能類似。
SELECT
是可能的。所以你需要了解查詢是否是這樣病態(tài)的。 (我認為這是高“延遲”的一個例子。)PARTITIONing
(尤其是在 MySQL 中)的用途很少。更多詳細資訊:分區(qū)
INDEX
對於效能非常重要。 每天插入
一百萬行不是問題。 (當然,有些模式設計可能會導致這個問題。)經(jīng)驗法則:100/秒可能不是問題;1000/秒可能是可能的;之後就變得更難了。更多關於高速攝取
當您進入大型資料庫時,它們分為幾種不同的類型;每個都有一些不同的特徵。
SPATIAL
或一些技術 此處