Enligt min åsikt kommer WHERE-satsen att vara långsam på grund av den inblandade matematiken, och användningen av funktioner i WHERE-satsen kommer att förhindra att databasen använder ett index för att snabba upp frågan - så i praktiken kommer du att undersöka varje restaurang i databas och utför matematiska cirklar på varje rad, varje gång du gör en fråga.
Personligen skulle jag beräkna TopLeft- och BottomRight-koordinaterna för en kvadrat (som bara behöver beräknas grovt med pythagoras) med sidor lika med intervallet du letar efter, och sedan utföra det mer komplicerade WHERE-satstestet på den mindre delmängden av poster som ligger inom den lat-/långa kvadraten.
Med ett index på Lat &Long i databasen kommer frågan
WHERE MyLat >= @MinLat AND MyLat <= @MaxLat AND MyLong >= @MinLong AND MyLong <= @MaxLong
bör vara mycket effektiv
(Observera att jag inte har någon kunskap om MySQL specifikt, bara om MS SQL)