A partir de ce document http://www.postgresql.org/docs/current/static/explicit-locking.htmlmode de verrouillage PostgreSQL
Je savais PostgreSQL propose différents modes de verrouillage pour contrôler l'accès simultané aux données dans les tableaux.
Mon problème est que j'ai beaucoup sessions pour accéder à mon DB, mais je suis confuse devrais-je fait 1 grande table avec 40 colonnes ou plusieurs tables de moins colonne (relation biunivoque).
Parce que quand je sélectionne les données que je choisirai tout cela ---> il prend plus de temps quand je choisis de nombreuses tables à l'aide INNER JOIN, mais il faut moins de temps pour choisir entre 1 grande table. Donc, mon php répondra plus lentement si j'utilise plusieurs tables. Mais quand j'utilise juste une table pendant que plusieurs sessions mettent à jour mes données dans la table, j'ai peur des deadlocks ou du retard car les commandes UPDATE, DELETE et INSERT acquièrent le mode de verrouillage ROW EXCLUSIVE sur la table cible. En général, ce mode de verrouillage sera acquis par toute commande qui modifie les données d'une table.
Quelqu'un pourrait-il suggérer quelle est la meilleure approche à adopter? Une grande table ou plusieurs tables?
Votre question pour une grande table ou de nombreuses tables est impossible de répondre sans savoir ce que vous y stockez. Le conseil standard est de normaliser votre schéma http://www.bkent.net/Doc/simple5.htm – Eelke
J'ai stocké des informations sur le périphérique par exemple ID, nom, IP publique, IP privé, passerelle, masque, port externe, port interne, etc .. Je suis confus dois-je fait dans une grande table avec plusieurs colonnes ou le diviser en plusieurs tables, pour exp: dev_info, dev_ip, dev_port – user430926
pour résoudre votre « requête lente », s'il vous plaît lire http: // wiki. postgresql.org/wiki/SlowQueryQuestions et mettez à jour votre question en conséquence. –