Hi,
With 2k req/sec, everything bottlenecks will start appearing all over, so it's hard to say which API will be faster. If you have 1GB of RAM to allocate to APC, then using the PHP API with APC will probably be your fastest option. If you are using multiple servers, I would seriously consider using the PHP API with a shared Memcache server, so all the APIs share the same cache. If your frontend servers are already low on memory, I/O and/or CPU, I would take a look at setting up a separate server just for the Database API / Tera-WURFL, and using the TeraWurflRemoteClient on the frontend servers. This is a lightweight PHP client that talks to the master Tera-WURFL server with a RESTful API. That approach will offload the resources to the central server.
With regards to features, the PHP API is very similar to the Database API. Notable features that are currently only available on one API are:
Database API: Remote HTTP API to separate frontend servers from WURFL API server, and the capability filter to allow you to load only certain WURFL capabilities (
if you're not doing this, you should really do it!).
PHP API: Shared memory caching (APC, Memcache)
Note that the shared memory caching and capability filter are on the development roadmap to be ported, so in v1.5 or v2.0 of the API (later this year), both APIs will support these functions.
Finally, with this much traffic, I would suggest you contact us at
http://www.scientiamobile.com/license and we can talk in more detail about our ultra high-performance options like the WURFL C++ Apache Module and similar plugins for popular reverse proxies.