Hi.

Here is my plug for PHP5. PHP5 has improved on the language a bit from previous version. However, it has embedded SQLite (www.sqlite.org) as a database. Since SQLite is public domain and small, the PHP folks decided to embed it into the language.

SQLite is an excellent tool. It supports a good chunk of ANSI SQL. It is not a database server, but just a SQL interface to a database which is stored in a file. For web developers, this means that you don't need to pay $$$ for the privelege of using a MySQL or a Microsoft database at an ISP. All you need is PHP5, and you can use the SQL database. (See http://www.zend.com/php5/abs/php101-9.php for how to use SQLite with PHP).

In a typical 3-tier system, a request comes to the web server, which grabs the parameters, massages them, and then sends them off to an application server, which massages them more, transforms them into a SQL database request, and sends the request to a database server. The database server then serves the request, and sends the request back to the application server, which then transforms the response into presentable information and sends that back to the web server. The web server transforms the presentable information back to something readable by the browser and sends the data back to the requestor. This request uses 3 computers, 3 or more processes, and up to 4 buffered I/O operations over a network between the web server and the database.

PHP5 uses a web server. The web server spawns off a PHP script, and the script itself accesses a SQLite database on the same computer via a file i/o interface. The result is retrieved, transformed, and rendered in the same script. i.e. using PHP5 means as little as 2 processes, one file i/o, 1 computer, and no buffered i/o operations over a network. This, in my opinion will give much better responses...

SQLite is not multi-threaded, but there are ways around that if you need to scale up...


Cheers, Jay