Задать вопрос
  • Как правильно составить запрос?

    @Akina
    Вот оно тебе надо - с часами возиться? прибавь 4 часа (или отними 20)... ночная смена получится от 00:00 до 12:00, дневная с 12:00 до 24:00.

    group by 2,1

    Ага... это при том, что в выходном наборе всего одно поле...
  • Как отимизировать запрос с 2-мя JOIN и нулевыми значениями по втором JOIN?

    @Akina
    galaxy,
    ну, только второй джойн.

    Почему это? оба джойна левые, так что по-любому в выходном наборе будут все записи из requests. Единственное, что привносят эти джойны - это дубликаты, но от задачи "получить столько дубликатов каждой записи из таблицы, сколько имеется связанных записей в другой таблице" на текущей предметной области (если, конечно, имена таблиц - говорящие) откровенно попахивает идиотизмом.

    А мускуль сам умеет лишние джойны убирать?

    Убирать - нет. А вот fake join - запросто.
  • Как отимизировать запрос с 2-мя JOIN и нулевыми значениями по втором JOIN?

    @Akina
    если джоины оставить, но в select убрать cities.title то отрабатывает быстро

    Если в select убрать cities.title, то джойны тоже можно убрать. По причине абсолютной бессмысленности их наличия.

    запрос начинает сильно тормозить ... то отрабатывает быстро

    Сравнение производительности двух разных запросов с различающейся логикой - занятие по-дурацки бессмысленное.

    Как отимизировать запрос

    Без полных CREATE TABLE всех таблиц, EXPLAIN запроса, а ещё лучше - хотя бы минимальной статистики данных (для всех условий - связывания, отбора, группировки, сортировки и пр.) вопрос не имеет смысла.
  • Как решить проблему с collation в БД?

    @Akina
    nottobacco,
    набор правил сравнения === collation, нет?

    Да. То есть collation влияет исключительно на сравнение (и, как следствие, ещё и на сортировку). И абсолютно никак не влияет на отображение - это забота charset.

    Объясните что вы имеете в виду под «Надо при создании БД явным образом задавать все опции создаваемой БД».

    Я имею в виду, что надо наконец, ну хотя бы теперь, озаботиться чтением официальной документации.

    CREATE DATABASE Statement. Особое внимание обратить на create_option.

    +--------------------------+--------------------+
    | Variable_name | Value |
    +--------------------------+--------------------+
    | character_set_client | latin1 |
    | character_set_connection | latin1 |
    | character_set_database | utf8mb4 |
    | character_set_filesystem | binary |
    | character_set_results | latin1 |
    | character_set_server | utf8mb4 |
    | character_set_system | utf8mb3 |
    | collation_connection | latin1_swedish_ci |
    | collation_database | utf8mb4_0900_ai_ci |
    | collation_server | utf8mb4_0900_ai_ci |
    +--------------------------+--------------------+

    Отмеченные значения - ошибочны. character_set_% - все сменить на UTF8MB4. collation_% - на любой (а лучше - на нужный), совместимый с UTF8MB4, но непременно для всех один.
  • Какую конфигурацию выбрать для построения сети?

    @Akina
    Игорь,
    Мои предшественники 20 лет назад думали примерно так же, как вы сейчас описываете. Когда адресов стало не хватать и фирма стала стремительно развиваться, встал вопрос расшириться не останавливая бизнес процессы от слова вообще.

    Значит, они допустили ошибку, когда использовали недостаточно широкие подсети без "свободных" подсетей между ними. Иначе простое расширение подсети за счёт расширения маски сразу превращает нерешаемую проблему в почти тривиальную.
  • Как решить проблему с collation в БД?

    @Akina
    вместо кодировки utf8mb4 collation utf8mb4_unicode_ci БД создаётся с кодировкой utf8mb4 collation utf8mb4_0900_ai_ci.

    А это последствия твоей собственной лени. Не надо ничего пытаться устанавливать. Надо при создании БД явным образом задавать все опции создаваемой БД, тогда не будет подобных проблем. То же относится к созданию таблиц и других объектов БД.

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

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

    Вот ты только что явно написал: "мы (должны) к нему подключаться с сервера". Теперь посмотри, что ты раньше говорил: "Как подключиться к socks серверу". Сплошной винегрет.

    Так кто где - сервер в локалке за NAT и клиент снаружи, или наоборот? Кто к кому подключается, кто инициализирует соединение - клиент к серверу или сервер к клиенту?
  • Как подключиться к хосту в локальной сети извне этой локальной сети?

    @Akina
    Вариант с port forwarding на роутере, работает, но не подходит по требованиям.

    Озвучьте эти требования.

    Также - проходит ли по этим требованиям помещение сервера в DMZ?

    Альтернативные подходы возможны.

    Внешний проксирующий сервер, с которым целевой сервер устанавливает постоянное соединение.
  • Почему не проходит решение?

    @Akina
    Мое решение: взять все листья, последовательно удалять их.

    Ну то есть жадный алгоритм. Который любит давать неоптимальные решения. Поэтому на каждом шаге следует чётко выбирать, какие именно листья из возможных удалять. Для чего с каждым листом нужно хранить количество листьев у его "родителя". И удалять в первую очередь те группы листьев, у которых это число кратно заданному K.

    Решение не проходит 19-й тест (мой ответ 2, нужно 3).

    Где исходные данные этого теста?
  • Как удалять повторение дефисов?

    @Akina
    Заменять два тире на один - и повторять, пока длина строки не стабилизируется.

    PS. Копируя код с кириллицей из VBA - переводи раскладку на русскую перед нажатием Ctrl-C.
  • Почему если по запросу в бд что-то найдено, то запрос выполняется быстрее?

    @Akina
    FanatPHP, дык у него всё равно там LIMIT 0, 26, пофиг на ограничения пыхадмина. И опять же MySQL при наличии ORDER BY сперва выбирает всё, а потом сортирит и лимитит.
  • Почему если по запросу в бд что-то найдено, то запрос выполняется быстрее?

    @Akina
    FanatPHP, а я согласен с предыдущим оратором.

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

    Вот и хотелось бы увидеть EXPLAIN двух запросов, с разными критериями и сильным различием во времени выполнения. Для подтверждения (или нет) гипотезы.

    Ну и вообще, плакаться на производительность, и при этом не дать ни CREATE TABLE, ни EXPLAIN (я уж молчу о статистике данных) - это как-то непрофессионально.
  • Что лучше всего подходит под 1c: Postgres или MSSQL?

    @Akina
    Сергей Горностаев, если учесть, что Постгресс обходится немного дешевле MS SQL, то преимущество последнего становится не таким очевидным. А если к тому же организация предпочитает *nix-серверы, то Постгресс и вовсе вырывается вперёд.
  • Что лучше всего подходит под 1c: Postgres или MSSQL?

    @Akina
    Типичнейший opinion-based вопрос. Холиварник.
  • Как минимизировать логическое уравнение?

    @Akina
    На самом деле больше похоже на опечатку и пропущенное А во втором слагаемом.
  • Как заставить Windows 10 при её выключении не выключать монитор до самого конца процесса выключения?

    @Akina
    hint000, мда, реализация, аднака... я бы такое не green mode назвал, а натуральным вредительством. Интересно, как это будет выглядеть, если от такого бесперебойника запитать оборудование, которое в некоторых режимах кушает больше 30 ватт, а в некоторых меньше. Во кому-то радость - сперва удивляться, а потом отключать этот, как выяснилось, нафиг не нужный green mode. И вообще - а какого заботиться не об оборудовании, а о батареях, если они-то как раз должны хоть сдохнуть, но спасти конечного потребителя. Это прям "мы сэкономим вам не менее одного нажатия на кнопку в день" какое-то.

    У моего хоть какая-то логика прослеживается - выключил комп, выключились принтер, сканер, лампа настольная, включил комп - опять всё запиталось.
  • Как заставить Windows 10 при её выключении не выключать монитор до самого конца процесса выключения?

    @Akina
    Валерий Еремеев,
    У нас не будет работать - организация процесса взаимодействия сотрудников такое не потянет.

    Ну вообще-то это не ваша забота, это проблема отдела ТБ (или иногда отдела кадров, если нет выделенного ТБ) - доведение инструкций и проведение соотв. инструктажей. И, честно говоря, не понимаю, как это "не потянет" - ведь все необходимые инструктажи у вас, я полагаю, проводятся? пусть хоть сто раз формально - но журналы есть и в них подписи сотрудников стоят. Так что нет проблем изменить инструкцию, утвердить её, и потребовать на этом основании проведения внеочередного инструктажа. В конце концов, даже медведей танцевать и на мотоциклах ездить учат, юзеры, поверь, ненамного тупее.
  • Как заставить Windows 10 при её выключении не выключать монитор до самого конца процесса выключения?

    @Akina
    hint000,
    Там если нагрузка ниже определённого уровня (дежурное питание выключенного ПК или монитора), то ИБП сам выключается.

    ИБП не отключается. Он только отключает напряжение на управляемых (slave) выходах.

    Не поможет. При пропадании напряжения на входе, даже если нет нагрузки на master-выходе, ИБП всё равно доблестно будет держать там 220 от батарейки, пока не высадит её в ноль. Во всяком случае именно так поступает мой APC Back-UPS ES 700. Да, есть стоечные бесперебойники, которые могут самогаситься при заданном понижении уровня заряда и самостартовать при появлении питания, но они стоят немножко по-другому.
  • Как заставить Windows 10 при её выключении не выключать монитор до самого конца процесса выключения?

    @Akina
    Сообщать пользователям (чем я регулярно занимаюсь) о том, что не стоит так делать, что надо смотреть на лампочки питания и работы жёсткого диска, и что только после их выключения можно выключать бесперебойник или удлинитель - не сильно помогает!

    В организации обязана существовать инструкция по работе с компьютерной техникой (и куча других регламентирующих документов). Надо в эту инструкцию внести соответствующий пункт, и ознакомить всех сотрудников с этой инструкцией - под подпись. С разъяснением последствий нарушения.

    Затем по каждому выявленному факту некорректного выключения писАть служебки руководству. С указанием конкретных нарушителей. И спокойно списывать на них, нарушителей, любые проблемы, причиной которых может быть некорректное выключение - вплоть до выхода из строя компонентов, если таковые возникают. Как показывает опыт, достаточно одного лишить половины месячной премии по факту злостного невыполнения требований инструкции (3 раза в течение календарного месяца - а на это пишется отдельная служебка), чтобы все начали её выполнять как отче наш... я уж не говорю об удержании стоимости повреждённого оборудования.

    Искоренять же долбо[skipped] юзеров программными средствами - занятие неблагодарное и бессмысленное. Административные меры намного эффективнее.