@haveacess

Как выводить данные что бы бд не легла?

Здравствуйте!

Вопрос следующего характера -
Есть скажем небольшой интернет магазин, где есть каталог.
Каждый из товаров - выгружается из базы данных.
Тоесть отправляем SELECT запрос, и уже данные подставляем в PHP и выводим красиво карточки товаров с информацией по ним. Все бы классно и здорово, но есть одно но..
Ведь каждый раз когда пользователь будет обновлять страницу или переходить на какую то из страниц сайта будет выполнятся запрос в БД откуда будут тянутся данные. А это нагрузка.
Хорошо если юзеров 5. А что если юзеров хотя бы 100, и все выполняют запрос в одну секунду.
Как не сложить базу и сделать так что бы все работало хорошо.

Пожалуйста подскажите, в какую сторону копать и что изучить.
На данный момент использую минимальный тариф хостинга Beget, там есть MYSQL. Но что то мне подсказывает что не хватит на долго такого хостинга. Как вобще выбрать где хранить БД и безопасно ли хранить данные для него входа в самом PHP файле.

Заранее благодарен за ответ!
  • Вопрос задан
  • 122 просмотра
Пригласить эксперта
Ответы на вопрос 4
@402d
начинал с бейсика на УКНЦ в 1988
Сказочник. 100 хитов в секунду у небольшого сайта.
1 хит в 100 секунд на протяжении 2х лет скорее будет.
А через год работы с базами данных от своего вопроса будете краснеть.

Муська легко держит
15 тысяч запросов в секунду типа выбрать по ид.
Выборки из списков зависят от качества индексов.
на вывод обычной страницы тратиться в среднем 15 запросов.

Не переживайте заранее. С опытом поймете, когда делать один запрос длинной в пару мегабайт,
а когда быстрее сделать 10-100 штук вместо одного.
Ответ написан
Комментировать
inoise
@inoise
Solution Architect, AWS Certified, Serverless
Очередной раз у человека на сайте полтора землекопа, а он начинает произносить слово нагрузка. Вот когда заметите что сервер начинает тупить, а запросы выполняться медленно то тогда и будете паниковать
Ответ написан
Комментировать
Если в запросе используется
SELECT * FROM zakazyто это плохая практика, поскольку не ограничивается количество записей. И когда таковых становится много, то это начинает влиять на производительность.
А вообще нужно анализировать Slow queries.
Чтобы узнать нагрузку на Mysql, можно подключиться к БД при помощи Mysql Workbench в меню слева выбрать Server status и в режиме реального времени наблюдать за нагрузкой.
А вообще, рано бить в колокола пока нет никаких конкретных цифр.
Ответ написан
Комментировать
BasiC2k
@BasiC2k
.NET developer (open to job offers)
Исходник из принципа, что юзеру не нужно видеть сразу 100 000 записей. Подгружайте их динамически, по мере необходимости или если нужно сразу - отдельным репортом.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы