@Mussi "куча клиентов" это сколько?
В чем смысл данного скрипта?
Во первых как написали выше правильный запрос это
select date_column from last_date ORDER BY date_column DESC LIMIT 1
где date_column - название вашей колонки с датой.
разумеется по ней должен быть индекс.
если есть первичный ключ и сортировка по нему совпадает с сортировкой по date_column то что бы не заводить лишний индекс можно сделать сортировку по первичному ключу.
Во вторых в качестве стартового решения - можно действительно сделать это в лоб на ajax.
В третьих - дать реальную нагрузку и посмотреть куда оно упрется.
Варианты
а) в базу. в этом случае делаем следующее:
ставим redis/memcache/что угодно по вкусу.
далее два варианта:
тупой:
делаем cron скрипт который выполняет указанный выше sql запрос и кладет результат в базу.
скрипт который дергается по ajax переделываем что бы он брал данные из redis
минус решения - данные возможно иногда будут запаздывать.
умный:
переписываем логику приложения которая обновляет поле date_column что бы при обновлении поля оно клалось в redis
б)упрется в производительность веб сервера (более вероятно на мой взгляд)
Правильное решение (кстати в любом случае правильное) - не использовать ajax вообще, а использовать сокеты. Можно это сделать на php (
habrahabr.ru/post/41223 habrahabr.ru/company/ifree/blog/209864 habrahabr.ru/company/bitrix/blog/198540 ), можно это сделать на node.js - там чуть нативнее и есть отличная библиотека socket.io
Получение данных правильно сделать так: на старте демона получаем данные из sql (один раз), далее как в варианте
2.умный если данные менются - логика приложения шлет особый запрос в демон, демон рассылает изменение всем подключенным клиентам.
Получается мгновенное обновление данных при минимальной нагрузке к бд и основному веб серверу.
Спасибо пожалуйста.