See PHI47. Currently, we do not advise installs to install whatever provides MYSQLI_ASYNC (mysqlnd?), and silently degrade to the less-powerful API if it is not available.
It would be nice to:
- Figure out what you need to install to get MYSQLI_ASYNC support.
- Advise installs to install that as an optional extension via a setup issue.
Note that we don't actually execute queries asynchronously today, although we may in the future. The major concrete advantage of MYSQLI_ASYNC today is that we can put a time limit on queries if it is available. Without the async API, we just have to call mysqli_query(...) and hope for the best. Normally this is fine, but the behavior is significantly worse if we issue queries that hang indefinitely. See AphrontMySQLiDatabaseConnection->rawQuery().