I\'m creating an MySQL call using PHP, I\'m calculating distance using the haversine forumula:
SELECT name, id,
(6371 * acos(cos(radians(\' . $lat . \'))
You're using the Spherical Law of Cosines formula, not the Haversine Formula (which is slightly slower).
Doing the math in MySQL will probably be much faster, I advise you to read this question I asked a while back, as for speed optimizations you should definitely read the excellent Geo Proximity Search with MySQL paper, pay special attention to pages 8-14 and 19.
For a super fast MySQL indexer, Check out Sphinx. It is extremely fast for finding what you need in your MySQL database, and does geo/distance calculations automatically.
Tutorial: Geo/Spatial Search Using Sphinx Search and PHP