[eluser]WanWizard[/eluser]
@pickupman, I don't fully agree with you.
1. PHP itself is, but your webserver isn't. So at any given time, multiple PHP processes, and therefore multiple instances of CI, can be active.
2. FALSE.
3. FALSE. There can be as many connections active in parallel as you have configured for your database engine. Two PHP processes access the database concurrently.
4. is therefore FALSE.
5. TRUE, but not because of your reasoning. insert id uniqueness is guaranteed by the database itself, by means of an internal locking mechanism on the ID counter.
If two processes insert a record at exactly the same time, the database engine will ensure they both get a unique insert id.
6.TRUE. But again not because of your reasoning. When you run an INSERT query, the result, which includes the insert id, is returned to the calling process (in this case the PHP database driver). It sits there until you run another INSERT query, or until you close the connection. MySQL also keeps track of the last insert id server side, per connection, so you can use LAST_INSERT_ID() in your queries.
Connection pooling just means that a pool of already established connections is available. When your process connects, one of the free connections from the pool is returned. Your process will be the sole user of that connection, when your process is finished the connection is returned to the pool.