За последние 24 часа нас посетили 54136 программистов и 1719 роботов. Сейчас ищут 827 программистов ...

запрос к базе данных

Тема в разделе "PHP для новичков", создана пользователем Андрей12, 26 май 2015.

  1. Андрей12

    Андрей12 Новичок

    С нами с:
    18 фев 2015
    Сообщения:
    131
    Симпатии:
    0
    есть фаил в этом файле есть запрос к базе данных $qs = mysql_query("SELECT * FROM users"); этот запрос срабатывает тогда когда пользователь переходит на другую страницу, а в базе данных 700 человек,а на сайте в этот момент сидит 10 человек и получается запросы слишком весомые,как сделать чтобы при переходе на другую страницу игроки не отправляли запрос в базу данных,но в тот же момент когда новый зарегинился у игроков показало +1,тобишь 701? Надеюсь я понятно объяснил=)
     
  2. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    курите memcashed
     
  3. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    какая глупость. условие в запросе есть? нет. поля выборочно или все? все. просто перечитка таблицы идет. это почти не нагружает сервер. другое дело это зачем выбирать все 700 человек?
     
  4. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Код (Text):
    1. select sql_cache count(*) as total_users from users
    Время запроса < 0.001 секунды, если таблица не менялась с предыдущего запроса (mySQL).
     
  5. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Chushkin, да даже без sql_cache - агрегаторов в запросе нет, следовательно субд просто вычитает из таблицы строки в том порядке, в котором они хранятся. не самая ресурсоемкая операция для таблицы в 700 пользователей.
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Желание получить количество записей чувствую я. )))

    Что касается мемкешед, для сайтов с 10 человеками онлайн без какого-либо, билят, хайлоада с горизонтальным масштабированием, проще и быстрее файловый кеш. ОС отлично кеширует файлы.
     
  7. Chushkin

    Chushkin Активный пользователь

    С нами с:
    17 дек 2010
    Сообщения:
    1.062
    Симпатии:
    91
    Адрес:
    Мещёра, Центр, Болото N3
    Всё относительно :)

    Код (Text):
    1. select * from Users limit 700
    Время: 0.007

    Код (Text):
    1. select sql_cache * from Users limit 700
    Время: 0.005

    Код (Text):
    1. select count(*) from Users limit 700
    Время: 0.008
    *** Тут странное, - движок читает все строки из таблицы, зачем-то. Вероятно глюк где-то. (движок v5.6.22) ***
    upd: ... сильно извиняюсь, это у меня глюк :( Так и должно быть - там 20К записей.
    Корретный запрос "select count(*) from Users where ID < 703", время 0.0008.

    Код (Text):
    1. select sql_cache count(*) from Users limit 700
    0.0001

    И это без учёта времени передачи данных клиенту.
    Вообще, я рекомендую для мелких и средних проектов использовать sql_cache - это ускорят получение данных от 2 до N раз и настолько же уменьшает нагрузку на движок. Естественно, применять надо разумно.