At 12:11 PM 1/31/02 -0700, tom.kemp@xxxxxxxxxxx wrote: >Also, if I do a persistent connection, it appears that PHP will try to >use this connection if it exists, prior to creating a new persistent >connection, right? Well, does it only reuse the already connected >persistent if it is the same user? How does this work? Does it check >that it is the same user/password (does my script have to supply this >in the second persistent connection function) prior to using the >preexisting connection? Is it tied to the current browser request? We've talked a lot about pg_pconnect this week; I'll try to summarise what we've learned... Each browser request from client is handled by an apache child process on server. Apache uses multiple child processes running concurrently to handle these browser requests. pg_pconnect will reuse a previously created connection to the database if the previous connection was made within the same apache child process *and* the connect string is "identical" (same host, database, username, password). http://www.php.net/manual/en/features.persistent-connections.php Using pg_pconnect() over pg_connect() may not always be a huge saving. Persistant connections are typically desired if your database server is a separate box from your webserver. If these servers are in the same box, and query execution time is dominate factor on your system, then there is minimal saving with pg_pconnect over pg_connect. If you have simple, very fast queries, then TCP connect and fork/exec (of the postgres backends) overhead may dominate and pg_pconnect wins again. If you support many different connect strings, then there is another factor to consider. You should expect to see many postgres client connections running on your server: A) Number of unique connect strings used. B) Number of active apache child processes. Multiply A*B to get max number of possible concurrent connections on your system (max_connections in postgresql.conf). If A*B can go over postgres connection limit, then you might start getting connection refused messages; in which case you might consider pg_connect. Otherwise, you move security code into your php scripts and use a single username for database access. Frank