0
我有一個非常適中的服務器,但是有相當多的數據(+ 50GB)。Postgres:將varchar主鍵映射到int id以獲得更好的性能
我收集產品的每日價格並將其存儲。由於我使用外部系統,產品和商店的ID都是變化的。
的表如今是這樣的:
products (about 10k rows)
------------
id varchar
other data..
shops (about 3k rows)
------------
id varchar
other data..
prices (more than 100 million rows!!)
-------------------------------
id_price serial (autoincrement)
id_product varchar
id_shop varchar
date
硬表要處理的是prices
,消耗數據庫的50%左右,再加上其他40%的指標(幾乎90%的整個數據庫!)
varchar ids通常每個約10個字符,用utf8編碼,儘管它們都是ascii字符。
我的問題是是否值得改變VARCHAR ID來數值ID,以允許1)減小表的大小和查詢的2)加速(特別是掃描和加入,也許感謝較少的頁面從磁盤讀取?)
我在考慮將自動增量鍵添加到products
和shops
表,然後更改prices
表指向新的價值。請注意,這個過程對於我的服務器來說非常重要,這就是我無法自己測試的原因。