我正在設計一套Web應用程序來跟蹤科學實驗室數據。每個實驗室都有幾個成員,每個成員都可以訪問他們自己的數據以及整個實驗室的數據。因此,許多典型的查詢將會返回多個成員的記錄(例如,我的鼠標,喬的鼠標和莎莉的鼠標)。商業Web應用程序 - 可擴展的數據庫設計
我想我已經很好地規範了數據庫。我現在想知道如何確保用戶能夠有效地訪問他們自己的數據和他們實驗室的數據集,當它們混合(希望)來自其他實驗室的大量記錄時。
到目前爲止我所提出的是,大多數表格將以兩個字段結束:user_id和labgroup_id。任何SELECT語句的WHERE子句將包含對其中一個id字段(「... WHERE'labroup_id = n ...」或「... WHERE user_id = n ...」)的適當引用。
我的問題是:
這是一種方法,將擴展到10^6個或更多的記錄?
如果是這樣,在查詢中使用這些字段的最佳方式是什麼,以便最有效地搜索數據庫的相關子集?例如查詢的第一步應該是創建一個僅包含實驗室組數據的臨時表嗎?或者使用id,user_id和labroup_id字段的某種組合進行索引就足夠了?
我非常感謝任何反應者。
mysql已經內置了一個查詢優化器。你也在使用白皮書(索引),所以它不應該是一個問題。 – Ben 2010-05-13 16:31:09
@Ben:與例如MS SQL,MySQL不會建議您應該創建以提高性能的索引。瞭解MySQL如何使用主鍵和索引以及如何使用可用的性能度量工具來確保高性能是非常重要的。 – 2010-05-13 17:25:53