• Тормозит mysql, это кэш?

    MaxDukov
    @MaxDukov
    впишусь в проект как SRE/DevOps.
    у мускуля несколько кэшей. Кэшироваться может как план исполнения запроса, там и данные.
    наиболее интересно данные - в 99% случаев наиболее значитмый эффект.

    а у Вас, судя по описанию, либо запросы повторяются не слишком часто (и данные из кэше вытесняются), либо кэш небольшой (и он, опять-же, чистится)

    попробуйте запустить mysqltuner и посмотрите на "Query cache prunes per day"
    Ответ написан
    5 комментариев
  • Как работают такие слайдеры?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Несколько дивов, в каждом часть картинки, например с помощью background-position
    дальше css анимация этих дивов
    Ответ написан
    Комментировать
  • Есть ли разница как хранить картинки?

    qonand
    @qonand
    Software Engineer
    Хранить картинки в базе - это очень плохой подход. Если у Вас это делает библиотека - тогда это плохая библиотека. Почему плохо хранить картинки в базе?
    1. Вы увеличиваете объемы данных передаваемые из СУБД в приложение, что в последствии скажется на производительности
    2. Объем таблицы в базе имеет ограничение, а при сохранении в нее картинок Вы сильно рискуете превысить это ограничение.
    3. Вы не сможете производить множество действия над полями с картинками (сортировать, делать выборки над ними)
    4. Если Вы делаете веб-приложения - тогда при таком подходе можете забыть о кешировании, т.к. его Вы полноценно не сделаете.
    5. Распределение изображений на разные серверы для оптимизации скорости загрузки так же не получиться сделать.

    Итог: хранить изображения в базе плохо, т.к. с ними геморно работать, они ухудшают производительность и масштабируемость проекта
    Ответ написан
    3 комментария
  • Как правильно работать с файлами в ubuntu?

    slo_nik
    @slo_nik
    Доброй ночи.
    Да, в отличии от windows на ubuntu терминал на первом месте, главнейший инструмент.
    Чтобы отредактировать файл, не обязательно вообще запускать gedit, можно через тот же терминал
    sudo nano /etc/nginx/nginx.conf
    Что за зверёк такой "nano" читайте здесь
    И вообще, привыкните к терминалу, научитесь работать в нём и все девушки/парни(нужное подчеркнуть) - Ваши)))))

    *************************************************
    Через консоль можно не только редактировать, создавать, копировать, перемещать файлы внутри системы, но и на удалённом сервере через терминал можно творить чудеса.

    1
    2
    3
    4

    **********************************************************************
    Чуть не забыл.
    Помните, что работая через терминал нужно думать головой и прежде , чем выполнить какую либо команду - читать документацию.
    Ответ написан
    2 комментария
  • С помощью чего лучше работать с MySQL?

    @Fixid
    dbforge
    Ответ написан
    Комментировать
  • Как в laravel обработать данные для сырого запроса?

    AmdY
    @AmdY
    PHP и прочие вебштучки
    Поясните вопрос. Если по поводу DB::raw, то он поддерживает плейсхолдеры и вторым параметром он принимает данные.https://laravel.com/docs/5.2/database
    Ответ написан
    Комментировать
  • Это похоже на брутфорс?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Типо да. Заурядный и тупой. Ограничить количество коннектов и ограничить время на логин-сессию, запретить логин рутом по ssh (от слова совсем - даже при знании правильного пароля). Если есть возможность - ограничить по IP, настроить логин по ключам вместо паролей.
    Ответ написан
    Комментировать
  • Это похоже на брутфорс?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Дык у вас лог sshd приведен. При чем тут nginx
    Да - это обычный брутфорс ботами. Быстрее всего пробегутся по списку наиболее распостраненных аккаунтов и паролей, и переключатся на другую жертву.
    Вынесите порт ssh на нестандартный, и прикрутите какой-нибудь fail2ban
    Ответ написан
    1 комментарий
  • Как обращаться к href ссылки только в тому случае, если там ссылка на id?

    bingo347
    @bingo347 Куратор тега JavaScript
    Crazy on performance...
    Самое простое поменять селектор ссылок на такой:
    a[href^="#"]
    Ответ написан
    5 комментариев
  • Как сформировать правильный route для запросов с дефисом?

    Alex_Wells
    @Alex_Wells
    PHP/Kotlin
    "one-two-three-moscow-zao" А у тебя PHP должен ванговать что-ли, то что ты хочешь вытащить??? С таким паттерном как у тебя в маршруте в самих варах не должно быть тире, а они есть. Так что твой шаблон максимум сработает для ровно трех-слоганного слова. Во-вторых, нахрена тебе разделять эти переменные прямо в маршруте?

    Я напишу решение, но если такие базовые задачи ты решаешь так, то это не твое.

    Route::get('/{category}/{title}', 'Site\CategoryController@getSubCategoryIndex_test');


    ВСЕ. Дальше если тебе очень нужно, можешь создать паттерн байндер в сервайс провайдере, либо напрямую в контроллере разделять title на части.

    С таким подходом как у тебя сейчас реализовать это НЕ ВОЗМОЖНО.
    Ответ написан
    Комментировать
  • Почему order by ускоряет запрос?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Почему так происходит?
    1. Потому, что выводится в результате меньше ровно на (2 000 000 - 20) записей.
    Или, другими словами, диапазон: 1 999 980 ... 2 000 000
    2. Обратная сортировка 'desc' - смотрит в диапазоне от >='2016-01-24' до последней (самой новой) даты и сортировку этого списка - реверсирует, чтобы начать перебор с конца, поэтому кол-во просматриваемых записей - тут НЕСОИЗМЕРИМО! меньше и из-за этого запрос работает быстрее.
    Ответ написан
    6 комментариев
  • Всегда ли multi insert лучше, чем несколько обычных?

    gobananas
    @gobananas
    finishhim.ru
    Да всегда, выигрываете время на перестраивании индексов. У меня выигрыш где-то в 40 раз был.
    Ответ написан
    Комментировать
  • Отказаться от group by и sort by?

    При этом "узким горлышком" производительности веб приложений как правило является именно БД.

    Логично, ведь большинство веб-приложений это выборка с некоторой простой обработкой. А БД не все умеют хорошо спроектировать.
    Имеет ли смысл сортировать и группировать результаты выборки с помощью ЯП, чтобы убрать сортировку и группировку из запросов?

    Это имеет смысл только если у вас вообще нет индексов, и по каким-то непостижимым причинам вы не можете их добавить. Чтобы отсортировать быстрее СУБД, нужно построить индекс самому, а вы вряд ли сделаете это лучше СУБД, еще и так, чтобы покрыть расходы на передачу данных. Группировку имеет смысл только если агрегирующая функция вычислительно очень сложная, но такое вы скорее всего в SQL запросе писать и не будете.

    Даже если у вас sort и group действительно занимают основной процент времени, перенос этих операций в код приложения врядли вам поможет. Иначе говоря, пока вы добьетесь приемлемого результата от такого решения, вы добрую часть алгоритмов СУБД перепишите заново (сначала вы напишите индексы для поиска или сортировку слиянием, потом, как заметил Сергей Савостин у вас всё равно данные не будут влезать в ОЗУ и вы захотите писать их на диск, тут же вашу копию данных в приложении нужно будет синхронизировать и вы начнёте писать примитивную репликацию и так далее..)
    Ответ написан
    Комментировать
  • Версия php для laravel?

    DevMan
    @DevMan
    не значит: емнип, все апдейты 5.6 - это багфиксинг.
    лучше конечно обновиться, но, как правило, не критично.
    Ответ написан
    Комментировать
  • JavaScript плагин для плавного появления страниц?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    1. git.blivesta.com/animsition
    2. jquery fadeout/fadein
    Ответ написан
    Комментировать
  • Почему JavaScript подключают перед закрывающим тегом body?

    alexey-m-ukolov
    @alexey-m-ukolov Куратор тега JavaScript
    Браузер останавливает парсинг страницы, когда встречает тег script. Поэтому, чтобы пользователь увидел контент как можно раньше, подключение скриптов откладывают на самый последний момент.
    Принципы работы современных веб-браузеров
    Ответ написан
    3 комментария
  • Как правильно написать unit тест?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    1) это не юнит тест, это интеграционный тест. Он проверят "часть системы в сборе", в вашем случае апишку. Если бы вы тестировали через UI (то есть через ангуляр) - это называлось бы end-to-end тест (от кнопок до базы данных мол).

    2)
    На просторах инета вижу простые примеры тестов которые проверяют на true false


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

    Что вам по сути важно когда вы пишите апишку? Скорее всего вы хотите всегда знать что структура ваших ответов не сломалась. Что вы случайно не поменяли имя поля, или случайно не убрали нужные поля. Для этого есть такая штука как json schema. То есть мы берем json и проверяем на соответствие. Опять же для phpunit можно найти готовые ассерты что бы не пилить велосипед.

    Далее, что еще нам может хотеться проверить - статус коды. Это опять же легко и думаю в документации к laravel это есть. Так же возможно вы захотите проверять заголовки но это уже специфичные штуки.

    Словом все что вы хотите проверить - вы просто проверяете. Правильно - это когда оно выполняет ваши потребности.

    Ну и возможно вам захочется проверить данные в json ответе. Тут уже есть кучи вариантов. Я например запилил свой велосипед для частичного сравнения JSON-а (ну не интересно мне все проверять). Можно и другими решениями это делать, но лично я такие штуки на этом уровне проверяю крайне редко, ибо... ну у меня другие тесты за проверку логики отвечают.
    Ответ написан
    6 комментариев
  • Как скрыть ссылки от ботов?

    lazalu68
    @lazalu68
    Salmon
    Комментировать
  • Какую корзину для интернет-магазина выбрать?

    thewind
    @thewind
    php программист, front / backend developer
    Друг попросил сделать, чтобы его машина быстрее ездила, а я под капотом то никогда не был. Может есть какая штука прямо на руль для этого?

    Вот примерно так ваш вопрос звучит.
    Ответ написан
    1 комментарий
  • Какую корзину для интернет-магазина выбрать?

    AloneCoder
    @AloneCoder
    [object Object]
    Скажите другу что с php-то толком и не работали, он вас поймет и так будет лучше всем
    Ответ написан
    1 комментарий