Вопрос следующего характера -
Есть скажем небольшой интернет магазин, где есть каталог.
Каждый из товаров - выгружается из базы данных.
Тоесть отправляем SELECT запрос, и уже данные подставляем в PHP и выводим красиво карточки товаров с информацией по ним. Все бы классно и здорово, но есть одно но..
Ведь каждый раз когда пользователь будет обновлять страницу или переходить на какую то из страниц сайта будет выполнятся запрос в БД откуда будут тянутся данные. А это нагрузка.
Хорошо если юзеров 5. А что если юзеров хотя бы 100, и все выполняют запрос в одну секунду.
Как не сложить базу и сделать так что бы все работало хорошо.
Пожалуйста подскажите, в какую сторону копать и что изучить.
На данный момент использую минимальный тариф хостинга Beget, там есть MYSQL. Но что то мне подсказывает что не хватит на долго такого хостинга. Как вобще выбрать где хранить БД и безопасно ли хранить данные для него входа в самом PHP файле.
Сказочник. 100 хитов в секунду у небольшого сайта.
1 хит в 100 секунд на протяжении 2х лет скорее будет.
А через год работы с базами данных от своего вопроса будете краснеть.
Муська легко держит
15 тысяч запросов в секунду типа выбрать по ид.
Выборки из списков зависят от качества индексов.
на вывод обычной страницы тратиться в среднем 15 запросов.
Не переживайте заранее. С опытом поймете, когда делать один запрос длинной в пару мегабайт,
а когда быстрее сделать 10-100 штук вместо одного.
Очередной раз у человека на сайте полтора землекопа, а он начинает произносить слово нагрузка. Вот когда заметите что сервер начинает тупить, а запросы выполняться медленно то тогда и будете паниковать
Если в запросе используется SELECT * FROM zakazyто это плохая практика, поскольку не ограничивается количество записей. И когда таковых становится много, то это начинает влиять на производительность.
А вообще нужно анализировать Slow queries.
Чтобы узнать нагрузку на Mysql, можно подключиться к БД при помощи Mysql Workbench в меню слева выбрать Server status и в режиме реального времени наблюдать за нагрузкой.
А вообще, рано бить в колокола пока нет никаких конкретных цифр.
Исходник из принципа, что юзеру не нужно видеть сразу 100 000 записей. Подгружайте их динамически, по мере необходимости или если нужно сразу - отдельным репортом.