Advantages / Disadvantages of pconnect option in CodeIgniter

One of the parameters in the CodeIgniter database config is the following

['pconnect'] TRUE/FALSE - Whether to use a persistent connection

What do you recommend I set this to?
Is there a significant performance hit if I set it to FALSE?
What potential problems might arise from setting it to TRUE?


Solution 1:

Just look up general best practices for persistent connections. My suggestions.

  • By default, DO NOT
  • If you have:
    • Dedicated web server and database hardware in production
    • and have tuned the web server and database correctly
    • and have an accurate production-like test environment
    • And still think your performance problems are caused by database connection time,

CONSIDER turning it on

Persistent connections can cause

  • Bugs because some connection state persisted unintentionally (this is a biggie!)
  • Database connection limits to be exceeded
  • Database performance to drop because of lots of ram used by the many (mostly idle) connections
  • Bugs because connections have gone "stale" and the app didn't notice

But CAN

  • Reduce latency on initial connection

If you think that connection latency is causing a problem, consider turning it on in your performance test system and measuring the impact.