Ответы пользователя по тегу PHP
  • Как импортировать большой JSON (18гб) в MySQL?

    romesses
    @romesses
    Backend инженер
    Это файл формата JSONL.

    JSON - родной формат для MySQL 5.7+ и каждую строку можно заносить в JSON колонку БД как есть, без предварительного декодирования в PHP. Можно и во временную таблицу, а затем извлечь конкретные поля.

    То есть достаточно считывать строки и применяя yield, отправлять в буфер-коллектор. По достижению размера, скажем, 1000 строк, выполнять INSERT INTO ... VALUES (...), сбрасывая содержимое буфера.

    https://www.w3schools.com/sql/sql_insert.asp
    https://www.w3schools.com/sql/sql_insert_into_sele...

    Или же импортировать файл утилитой Mysql Shell.
    Ответ написан
    Комментировать
  • Какой стек технологии выбрать для сайта объявлений с посещаемостью до 500.000 в день?

    romesses
    @romesses
    Backend инженер
    Если будет хорошо продумана архитектура и грамотно реализовано, то язык имеет не первостепенную роль. Как уже уже было отмечено, асинхронность - важный атрибут в работе с ресурсами.
    Не нужно стремиться к идеальному стеку технологий. Начните с Laravel или другого фреймворка и решайте проблемы по мере их поступления. Но важно заранее планировать работу всех компонентов и иметь в развитии видение системы.
    По мере роста посетителей сможете заменять проблемные участки кода и улучшать.
    Ответ написан
    Комментировать
  • Что использовать для PHP разработки? Vagrant, Ansible или Docker?

    romesses
    @romesses
    Backend инженер
    Для первичной настройки и поддержки актуального состояния используются системы управления конфигурациями.

    Docker используют чаще для гарантии идентичности среды, как в продакшн. Т.е. локально ведется разработка, тестируется в Docker. Если тесты пройдены - можно выкатывать в продакшн. Можно развертывать вручную, конечно. Но лучше, когда используются системы CI/CD (Jenkins, Gitlab CI/CD, Github Actions и пр.)
    В случае Docker такие системы на сборочной машине собирают приложение в контейнер Docker и загружают его в реестр Docker, а затем на целевой машине скачивается контейнер и запускается.
    В Jenkins можно использовать тот же Ansible и для разворачивания проекта.

    Разве не логичнее использовать Linux в качестве хост машины? Всякие VirtualBox не подходят для этих целей.
    Ну и если сильно нужна Windows - установите ее в качестве гостевой ОС.
    Вот для сравнения различные системы виртуализации:
    https://wiki.openvz.org/Comparison
    Ответ написан
    1 комментарий
  • Что быстрее отрабатывает — запрос к файлу или в БД?

    romesses
    @romesses
    Backend инженер
    Зачем плодить доморощенные форматы данных, когда есть SQLite?
    И в коде сразу будет понятно что происходит, достаточно будет посмотреть на SQL запрос.

    Добавлено
    А если MySQL уже подключена, то вопрос вообще теряет смысл. Нужно просто использовать SQL где можно.

    Кроме того, что у вас за проблема с запросом на MySQL, что вы решились на сравнение?
    Ответ написан
    Комментировать
  • Почему файл картинки не сохраняется в бд?

    romesses
    @romesses
    Backend инженер
    В форме нужно указать multipart/form-data
    Ответ написан
    Комментировать
  • Как оптимизировать UPDATE + 1?

    romesses
    @romesses
    Backend инженер
    Прямо таки, узкое место именно в Memcached? У вас точно не из-за блокировок в коде задержка?
    Сколько процессов или потоков может обновить значение счетчика?

    Вообще, для увеличения счетчика используют incr.

    Добавлено
    Так вы используете еще и MySQL (только прочел в тегах). Ну да, можно использовать Memcached как счетчик. Но минус в том, что при рестарте данные пропадут. Так что можете взять Redis и делать то же самое.

    Добавлено
    Если вас интересует техника сохранения данных в Redis с минимизацией потерь, то есть статья
    https://softwareengineering.stackexchange.com/ques...
    Если же есть больше предпочтение работы с MySQL, то можно настроить репликацию так, что для записи счетчиков будет использоваться записью в мастер, а чтение счетчиков с реплики.
    Плюс еще статья https://www.percona.com/blog/2007/07/01/implementi...
    Ответ написан
    6 комментариев