есть фаил в этом файле есть запрос к базе данных $qs = mysql_query("SELECT * FROM users"); этот запрос срабатывает тогда когда пользователь переходит на другую страницу, а в базе данных 700 человек,а на сайте в этот момент сидит 10 человек и получается запросы слишком весомые,как сделать чтобы при переходе на другую страницу игроки не отправляли запрос в базу данных,но в тот же момент когда новый зарегинился у игроков показало +1,тобишь 701? Надеюсь я понятно объяснил=)
какая глупость. условие в запросе есть? нет. поля выборочно или все? все. просто перечитка таблицы идет. это почти не нагружает сервер. другое дело это зачем выбирать все 700 человек?
Код (Text): select sql_cache count(*) as total_users from users Время запроса < 0.001 секунды, если таблица не менялась с предыдущего запроса (mySQL).
Chushkin, да даже без sql_cache - агрегаторов в запросе нет, следовательно субд просто вычитает из таблицы строки в том порядке, в котором они хранятся. не самая ресурсоемкая операция для таблицы в 700 пользователей.
Желание получить количество записей чувствую я. ))) Что касается мемкешед, для сайтов с 10 человеками онлайн без какого-либо, билят, хайлоада с горизонтальным масштабированием, проще и быстрее файловый кеш. ОС отлично кеширует файлы.
Всё относительно Код (Text): select * from Users limit 700 Время: 0.007 Код (Text): select sql_cache * from Users limit 700 Время: 0.005 Код (Text): select count(*) from Users limit 700 Время: 0.008 *** Тут странное, - движок читает все строки из таблицы, зачем-то. Вероятно глюк где-то. (движок v5.6.22) *** upd: ... сильно извиняюсь, это у меня глюк Так и должно быть - там 20К записей. Корретный запрос "select count(*) from Users where ID < 703", время 0.0008. Код (Text): select sql_cache count(*) from Users limit 700 0.0001 И это без учёта времени передачи данных клиенту. Вообще, я рекомендую для мелких и средних проектов использовать sql_cache - это ускорят получение данных от 2 до N раз и настолько же уменьшает нагрузку на движок. Естественно, применять надо разумно.