Performance
SQL 性能:COUNT 還是額外屬性?
如果我想計算多值屬性的數量,哪種方式更快:
a)
COUNT(attribute)
在整張桌子上使用要麼
b) 添加一個額外的屬性來計算這些儲存的值(通過 訪問
SELECT
)
Option
a
更有可能返回正確的值。選項b
需要一個新表和實現程式碼來維護它。這肯定是過早優化的跡象。我希望你想要一個類似的查詢。SELECT attribute, COUNT(attribute) FROM mytable GROUP BY attribute
如果屬性列被索引,則可以通過讀取索引而不訪問表來滿足此查詢。是否完成,或者讀取的表將取決於數據庫優化器。
在某些數據庫上,您可能能夠從優化器元數據中獲得對計數的良好估計。這通常在屬性值很少且相對頻繁地重新生成優化器數據的情況下效果最佳。
您必須記住的一件事是:如果您實現了計數,您可能會在並發方面獲得一些樂趣。但是,物化列當然總是要快得多。