Задать вопрос
  • Будет ли использоваться индекс в запросе вида WHERE `field1` LIKE '_aa_a_'?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Нет разницы, один или 10.
    Для простоты индекс можно рассматривать как отсортированный список.
    Если список учеников в классном журнале отсортирован по алфавиту, то вы довольно быстро найдёте нужного.
    А теперь представьте, что вы по тому же самому списку ищете фамилию, на зная первой буквы. И тут уже без разницы, сколько букв мы не знаем. И одной достаточно, чтобы полностью поломать поиск.

    Точно такие же проблемы будут и у базы данных. Вместо отсортированного списка с выходом сразу на нужную букву, придётся тупо искать перебором.

    Полнотекстовый индекс также не является чем-то особенным в этом плане. Он устроен по совершенно тупому принципу: грубо говоря, БД берёт текст из колонки, и разбивает его на слова. И строит по этим словам снова точно такой же отсортированный список, с указанием, в каких строках это слово используется. То есть когда мы делаем запрос с match, то mysql находит искомое слово в индексе, и возвращает из него все строки.

    И точно так же полнотекстовый индекс не работает, если поставить звёздочку спереди. Мануал так и говорит:
    Words match if they begin with the word preceding the * operator

    То есть звездочка работает только если поставить её в конце слова.
    match against ('класс*') найдёт слово "классный", а '*accный' его уже не найдёт.
    То есть БД тебе сразу говорит, что для такого поиска полнотекстовый индекс будет бесполезен.
    Ответ написан
    Комментировать
  • Можно ли настроить синхронизацию хостов, шаблонов между двумя zabbix серверами?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    В чём заключается цель синхронизации? Отказоустойчивость предоставляет репликация базы и контейнеризация приложения, незачем тут, имхо, городить костыли сомнительного качества в угоду "незамороченности".
    Ответ написан
    4 комментария
  • Пара вопросов по поводу сборки ПК?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Во-первых: для каких целей ПК и какой бюджет?
    Второе: для данной конфигурации процессора и видеокарты блок питания слишком слабый, на грани - надо брать минимум 750-800 ватт, иначе БП будет работать на износ, а то и вообще с перегрузкой. У блока питания должен быть запас по мощности минимум в 20%, т.к. постоянная эксплуатация блока питания на максимальной мощности быстро приведет к его деградации и выходу из строя, а так же со временем и старением его мощность падает, что тоже может привести его к выходу из строя при постоянной перегрузке. Кроме того, если в будущем планируется апгрейд на более мощную видеокарту или еще какие девайсы - то это тоже надо учитывать при выборе БП и брать с учетом более мощной будущей видеокарты или просто дополнительным запасом мощности для питания дополнительных устройств. Вообще, на блоке питания крайне не рекомендуется экономить и лучше потратиться один раз на качественный БП, чем потом на весь компьютер, т.к. при выходе из строя БП есть шанс того, что он может утянуть остальное железо за собой в электронный рай всё или частично. Топ - SeaSonic, FSP, например.
    Третье: слишком маленький ССД - имеет смысл брать взять хотя бы на 1ТБ и обязательно M2 PCI-E 4.0 (скорость). Например что-то из самсунгов или интела.
    На счет совместимости: это нынче достаточно редкое явление, а когда случается - то обычно магазины идут на встречу и без проблем меняют несовместимое оборудование.

    Рекомендую обратить внимание на ежемесячную подборку железа от 3DNews: https://3dnews.ru/1073472/kompyuter-mesyatsa-senty...
    Ответ написан
    Комментировать
  • Как вы решаете проблему, когда нужно срочно пофиксить багу - через git stash? А если вдруг забудете что там stash? Есть еще методы?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    git commit -m "WIP"— достаточное красивое решение.
    Ещё можно создать дополнительный рабочий каталог для параллельной работы.
    git worktree add
    Тогда прятать недоделанное не понадобится.
    Ответ написан
    3 комментария
  • Глюки на сайте после программных изменений, пока не очистить кэш. Как от этого избавится?

    delphinpro
    @delphinpro
    frontend developer
    Браузер кэширует ресурсы по полному УРЛ, включая параметры запроса.
    Поэтому выход очень простой, и он повсеместно используется.
    Нужно дописать в queryString любой уникальный параметр.
    В лоб можно писать метку времени

    <script src="my_script.js?<?= time() ?>">

    Однако, с таким подходом файл будет постоянно загружаться заново при каждом запросе.

    Лучше ввести версионирование. Простейший вариант – вручную обновлять версию при изменении

    <script src="my_script.js?v=1">
    <script src="my_script.js?v=2">


    Но это, конечно, неудобный вариант. Нужно автоматизировать. Например, при сборке каким-нибудь бандлером можно настроить имя выходного файла на основе хеша его содержимого.
    Будет выглядеть как-то так

    <script src="my_script.ab21df.js">

    Такой вариант хорошо подходит для SPA, так как сборщик тогда обычно генерит и индексный файл и может в нем автоматически подключать актуальные имена файлов.

    В остальных случаях отлично подойдет вариант с подстановкой метки времени изменения файла

    <script src="my_script.js?v=<?= filemtime('/path/to/my_script.php') ?>">
    Ответ написан
    Комментировать
  • Как влить изменения с другой ветки до определенного коммита?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Если обе тематические ветки созданы из одного и того же места master, то просто передвиньте указатель ветки task2 так, чтобы он указывал на пятый коммит ветки task1
    git switch task2
    git reset --hard <SHA пятого коммита>


    Если после создания task1 в мастере появились другие коммиты, то просто передвинуть уже не получится. Делаем коммит слияния.
    git switch task2
    git merge <SHA пятого коммита>
    Ответ написан
    Комментировать
  • Как быстро добавлять / обновлять миллионы строк в БД Laravel?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Для сферического обновления в вакууме не нужно вообще ничего.
    БД спокойно по умолчанию пишет десятки тысяч строк в секунду.
    То есть просто записывать и всё.

    При возникновении конкретных проблем надо собраться с мыслями и задать конкретный вопрос, детально описывая проблему. А не вот это вот "ну у нас там много всего и растёт нагрузка".

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

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Установили Windows, установили драйвера и все нужное ПО - сделали образ диска. Каждые 4 дня - просто восстанавливать ОС из образа.
    Ответ написан
    Комментировать
  • Расскажите пожалуйста, что может произойти, если ответвить ветку от родительской с текущим кодом, а потом изменить родительскую ветку?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    вдруг что сломается

    Если вы работаете в Git то вы ничего не можете сломать. Не бойтесь экспериментировать.
    А тематические ветки на то и придуманы, чтобы в них отлаживать фичу перед отправкой в главную ветку.

    Возникнут ли конфликты и если да, то как их можно решить?

    Могут возникнуть, а могут и нет. В любом случае — конфликты это хорошо, это нормальный рабочий процесс. И конфликты разрешаются инструментом разрешения конфликтов или просто руками в текстовом редакторе. Чтобы не ломать общую ветку, можно предварительно забрать обновления оттуда к себе в тематическую, разрешить конфликты, прогнать тесты, и уже потом слить работу в основную ветку. Тогда конфликтов уже не будет.
    Ответ написан
    6 комментариев
  • Как правильно подобрать комплектующие?

    @ewgenc
    Взять Ryzen 5600G и мать на b450. ОЗУ и SSD по оставшимся средствам. Встроенное видео в этом процессоре уже на уровне 1050ti, смысла тратить деньги на устаревшую видюху нет.
    Ответ написан
    Комментировать
  • Почему обрывается процесс git pull?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Замените ваши четыре шага одной командой
    git clone --depth=1 --branch=main <repo link> <site-dir>

    — скачать только состояние на последний коммит ветки main.
    Остальная история на хостинге не нужна.
    Ответ написан
    Комментировать
  • Open Server. Как пробросить один входящий порт на три разных приложения?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Nginx.
    Ответ написан
    Комментировать
  • Open Server. Как пробросить один входящий порт на три разных приложения?

    @Drno
    поднять обратный прокси на nginx...
    Ответ написан
    Комментировать
  • Отсутствие терминала выключает бота discord.?

    DevMan
    @DevMan
    Господи, ну 100500 раз уже жевалось.
    самый нормальный способ - сервис для автоматического старта при буте.
    далее - screen, tmux, nohup, run in background и всё такое.
    Ответ написан
    Комментировать
  • Нужно ли Bitix php программистам знание патернов проектирования?

    Если речь действительно о программистах, то да.
    Это очень нужно, чтобы например создавать модули или решения.
    Это очень нужно при разработке некоторые сложных проектов с нуля.

    В целом Bitrix Framework неплох и на его примере можно как раз поучиться тем самым патернам.

    К сожалению часто под программистами подразумевают тех кто просто натягивает верстку на стандартные компоненты и добавляет к ним костыли чтобы реализовать какую-то допфункциональность.
    А под Bitrix имеют ввиду скорее компоненты, которые, откровенно говоря, просто чудовищны. Ориентироваться на них в развитии не стоит и если ваша работа полностью связана с использованием стандартных компонентов или решений вроде Аспро, то знание патернов вам не понадобиться и возможно даже будет мешать, потому что слишком часто будет желание прервать работу и пойти помыть руки. А то и полностью помыться.
    Ответ написан
    Комментировать
  • Возможно ли создать кроссплатформенное приложение на php?

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer
    но не просто в виде exeшника файла, а отдельного, опять же, десктоп приложения но с большим функционалом

    Чем отличается приложение в виде экзешника от десктоп приолжения с большим функционалом? размером экзешника или ты плохо понимаешь что такое экзешник?

    Здравствуйте, появилась идея создать кроссплатформенное приложение: ВЕБ + ДЕСКТОП

    Отлично. Язык выбрал, а платформу ты какую выбрал для кроссплатформенности?
    А еще лучше, какие ты уже приложения сделал, хотя бы некроссплатформенные?

    Хочу синхронизировать десктоп приложение с веб составляющей

    чего?

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

    hint000
    @hint000
    у админа три руки
    1. PHP для Web. Как вы сделаете графический интерфейс на PHP, не используя возможности браузера?
    2. Если желание тащить PHP на десктоп связано с нежеланием изучать ещё один язык, то просто преодолейте лень.
    3. Приложение с интерфейсом командной строки тоже можно считать десктопным приложением; PHP на это способен без web-сервера.
    4. Следуя общемировому тренду на подмену понятий, можно и web-приложение на локальном web-сервере назвать десктопным приложением. #не_ну_а_чо
    Ответ написан
    Комментировать
  • Как установить Windows 98 на телефон?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Интересно, такие бредовые идеи возникают отчего? От нежелания хоть немного узнать, что из себя представляет "телефон" с точки зрения вычислительной техники или просто от модно-стильно-молодежности? Это примерно как дети спрашивают "А если взять атом величиной с дом?"

    Нет, малчик, нЭльзя. нЭ тот архитектура.

    Хотя путь джедая конечно же есть. Найти исходники, перекомпилять под нужную архитектуру, написать драйвера, написать загрузчик - делов-то...
    Ответ написан
    Комментировать
  • Docker vs Bare Metal — сравнение производительности?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Везде, кроме высоконагруженных баз данных (ну и вообще хайлоада) падением производительности в докере почти всегда можно пренебречь.
    Ответ написан
    2 комментария
  • Нужно ли уже идти в магазин за новым HDD?

    @As56
    Если жд начинает сыпаться, то ничто ему, как правило, уже не поможет. Под замену
    Ответ написан
    Комментировать