來自此文檔http://www.postgresql.org/docs/current/static/explicit-locking.htmlPostgreSQL鎖定模式
我知道PostgreSQL提供了各種鎖定模式來控制對錶中數據的併發訪問。
我的問題是我有很多會話將訪問我的數據庫,但我很困惑,我應該使用40列或許多列與較少的列(一對一關係)1大表。
因爲當我選擇數據,我會選擇這一切--->它需要更多的時間,當我使用INNER JOIN許多表選擇,但它需要較少的時間從1個大表來選擇。所以,如果我使用了很多表格,那麼我的php會響應得更慢。
但是,當我只使用一個表時,許多會話將更新我的表中的數據,我害怕死鎖或延遲,因爲命令UPDATE,DELETE和INSERT獲取目標表上的ROW EXCLUSIVE鎖定模式。通常,這種鎖定模式將由修改表中數據的任何命令獲取。
任何人都可以推薦哪種方法是最好的方法嗎?一張大桌子還是很多桌子?
對於一張大桌子或許多桌子,您的問題無法在不知道您存儲在其中的情況下回答。標準的建議是規範化你的模式http://www.bkent.net/Doc/simple5.htm – Eelke 2013-04-09 05:41:49
我存儲了設備信息,例如id,name,public ip,private ip,gateway,mask,external port,internal port,etc .. 我很困惑,我應該把它做成一個有很多列的大表,或者把它分成許多表,對於exp:dev_info,dev_ip,dev_port – user430926 2013-04-09 06:04:43
爲了解決你的「慢查詢」,請閱讀這個http:// wiki。 postgresql.org/wiki/SlowQueryQuestions並相應地更新您的問題。 – 2013-04-09 07:13:32