Според мен клаузата WHERE ще бъде бавна поради включената математика и използването на функции в клаузата WHERE ще попречи на базата данни да използва индекс за ускоряване на заявката - така че на практика ще прегледате всеки ресторант в база данни и извършвайте математиката с големия кръг на всеки ред всеки път, когато правите заявка.
Лично аз бих изчислил координатите TopLeft и BottomRight на квадрат (който трябва само грубо да се изчисли с помощта на Питагор) със страни, равни на диапазона, който търсите, и след това бих изпълнил по-сложния тест WHERE на по-малкото подмножество от записи, които са в рамките на този квадрат Lat/Long.
С индекс на Lat &Long в базата данни заявката
WHERE MyLat >= @MinLat AND MyLat <= @MaxLat AND MyLong >= @MinLong AND MyLong <= @MaxLong
трябва да бъде много ефективен
(Моля, имайте предвид, че нямам познания конкретно за MySQL, само за MS SQL)