If you're connecting to a MySQL database in your PHP application, you'll find that there are two alternative connections -
mysql_connect which establishes a new connection "each time" and
mysql_pconnect which uses persistent connections. Which should you use?
Mysql_connect opens a new connection each time a PHP page is called up, and closes the connection down again at the end of the request. It's ideal for pages that don't have a heavy usage - doesn't need tuning, is straightforward internally. If you compare MySQL to a shop, this is the connection that you would use for a small shop where the door is opened each time a new customer wishes to enter.
Mysql_pconnect will also open a new connection when a PHP page is called up (at any rate, it will the first time after a server reboot), but it will NOT close the connection at the end of the request - instead, it will save it in a connection pool so that a subsequent request can continue to use the same connection. It's intended for pages that do have a heavy usage - where the resources burn up by opening and closing connections every time might have a severe effect on performance. If your local supermarket had a door that was opened each time someone went in and out, there would be a lot of needless opening and closing going on - better to leave it open and let a whole lot of people in and out at the same time.
But mysql_pconnect does require some tuning of the servers and you may need to limit the numbers of connections / children and configure timeouts and how to deal with idle children. The PHP website includes
an overview of this to get you started.
Finally, it is worth stressing what a persistent connect does NOT give you. It does NOT give you sessions. It does NOT give you a per-site-visitor login. It does NOT give you any extra functionality. What it does give you - in the right circumstances - is an efficiency improvement.
[Further link -
Using MySQL from PHP]
(written 2004-10-30, updated 2008-05-11)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
S159 - MySQL 5 and PHP 5 [494] MySQL - a score of things to remember - (2005-11-12)
[515] MySQL - an FAQ - (2005-12-03)
[1131] MySQL - Password security (authentication protocol) - (2007-04-02)
[1417] What software version do we teach? - (2007-10-31)
[1455] Connecting to MySQL 5 from PHP on Mac OSX Leopard - (2007-12-03)
[1754] Upgrade from PHP 4 to PHP 5 - the TRY issue - (2008-08-15)
[1766] Diagrams to show you how - Tomcat, Java, PHP - (2008-08-22)
[2172] PHP4 v PHP5 - Object Model Difference - (2009-05-11)
[3455] MySQL, MySQLi, PDO or something else - how best to talk to databases from PHP - (2011-09-24)
S156 - Interfacing Applications to MySQL Databases [644] Using a MySQL database from Perl - (2006-03-13)
[663] Python to MySQL - (2006-03-31)
[723] Viewing images held in a MySQL database via PHP - (2006-05-17)
[1381] Using a MySQL database to control mod_rewrite via PHP - (2007-10-06)
[1450] Easy selection of multiple SQL conditions from PHP - (2007-11-30)
[1518] Downloading data for use in Excel (from PHP / MySQL) - (2008-01-25)
[1561] Uploading to a MySQL database through PHP - examples and common questions - (2008-03-02)
[1885] Hiding a MySQL database behind a web page - (2008-11-15)
[2263] Mysqldump fails as a cron job - a work around - (2009-06-30)
[2381] Checking the database connection manually - (2009-08-28)
[2745] Connecting Python to sqlite and MySQL databases - (2010-04-28)
[2790] Joining a MySQL table from within a Python program - (2010-06-02)
[3035] How to display information from a database within a web page - (2010-11-07)
[3099] Perl - database access - DBD, DBI and DBIx modules - (2010-12-22)
[3447] Needle in a haystack - finding the web server overload - (2011-09-18)
[4436] Accessing a MySQL database from Python with mysql.connector - (2015-02-21)
H113 - Using MySQL Databases in PHP Pages [572] Giving the researcher power over database analysis - (2006-01-22)
[581] Saving a MySQL query results to your local disc for Excel - (2006-01-29)
[647] Checking for MySQL errors - (2006-03-15)
[666] Database design - get it right from first principles - (2006-04-02)
[915] Paging through hundreds of entries - (2006-11-05)
[937] Display an image from a MySQL database in a web page via PHP - (2006-11-22)
[947] What is an SQL injection attack? - (2006-11-27)
[1010] Dates, times, clickable diarys in PHP - (2006-12-28)
[1983] Keeping PHP code in database and running it - (2009-01-09)
[2071] Setting up a MySQL database from PHP - (2009-03-08)
[2259] Grouping rows for a summary report - MySQL and PHP - (2009-06-27)
[2320] Helping new arrivals find out about source code examples - (2009-08-03)
[2432] Using print_r in PHP to explore mysql database requests - (2009-10-01)
[2447] MySQL stored procedures / their use on the web from PHP - (2009-10-10)
[2561] The future of MySQL - (2010-01-03)
[2628] An example of an injection attack using Javascript - (2010-02-08)
[4378] What FGW passengers want to talk about / and PHP programming to find out - (2015-01-01)
[4483] Moving from mysql to mysqli - simple worked example - (2015-05-03)
Some other Articles
A typical morningTaking Equipment offshore to run a courseFar from the sea, but close to the heartDistance Learningmysql_connect or mysql_pconnect in PHP?Can't resist writing about PythonThe Romans got it rightGood value, low cost, cheap.Life is frailShould we call it 'Geekmas'?