• Проблемы с группировкой. Как сделать тоже самое в PostgreSQL?

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    Ваш запрос не корректен, группируя по вы не можете выбирать "flat".* вам следует выбирать "complex"."id", "complex"."rate" , В случае если нужо - использовать аггрегатные функции с данными квартир MIN("flat"."price_call")
    SELECT "complex"."id",  "complex"."rate", MIN("flat"."price_call") "min_flat_price_call" 
    FROM "flat" 
    LEFT JOIN "complex" ON "flat"."complex_id" = "complex"."id"
    LEFT JOIN "building" ON "flat"."building_id" = "building"."id"
    LEFT JOIN "section" ON "flat"."section_id" = "section"."id"
    GROUP BY "complex"."id",  "complex"."rate" 
    ORDER BY 
        "complex"."rate"  DESC, 
        "min_flat_price_call",  
        "complex"."room_price_min" 
    LIMIT 30;
    Ответ написан
    Комментировать
  • Можно ли менять логический оператор в зависимости от переменной?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    if (f_pos.x * x_direction > R) {
        rot_direction2 = false;
    }
    Ответ написан
    Комментировать
  • Как узнать путь до исполняемого файла в Linux?

    suffix_ixbt
    @suffix_ixbt
    https://www.babai.ru/
    which programm_name
    Ответ написан
    Комментировать
  • Как ограничить права на файлы и папки?

    @Tabletko
    никого не трогаю, починяю примус
    Можно, только зачем ему видеть то с чем он ничего сделать не может. Ответ на вопрос - отключить access based enumeration и забрать у пользователя права на чтение и редактирование.
    Ответ написан
    Комментировать
  • Сплиттер или коммутатор?

    Jump
    @Jump
    Системный администратор со стажем.
    Нужен коммутатор - стоит он от 300рублей до 1000рублей в основном.
    Сплиттер - это вообще что такое?
    Обычно сплиттерами называют частотные фильтры для разделения каналов - это аналоговое оборудование, в сеть вы его при всем желании не сможете подключить! Применяется сплиттер в основном в телефонных сетях, чтобы разделить частоты передачи голоса, и частоты передачи трафика по адсл.
    Ответ написан
    Комментировать
  • Как решить проблему временной папки Wordpress?

    kotomyava
    @kotomyava
    Системный администратор
    Для начала, стоит посмотреть значение upload_tmp_dir, с помощью phpinfo(). И дальше смотреть: либо поправить права, либо создать её, либо изменить это значение.
    Ответ написан
    2 комментария
  • Как узнать что SSL сертификат мультидоменный?

    SagePtr
    @SagePtr
    Еда - это святое
    Поле X509v3 Subject Alternative Name смотрите
    Ответ написан
    Комментировать
  • Как понять есть ли нагрузка на БД?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Почему больше всего подписчиков всегда слетается на самые дурацкие вопросы?
    Которым место в мусорке, а не на главной Хабра.
    Ну ведь как в прошлый раз же, весь текст - какие-то бессвязные эротические фантазии, не имеющие ничего общего ни с реальностью, ни друг с другом, ни - главное - с собственно вопросом, который был задан.

    Так вот: я смотрю, что получил 1500 строк из базы за 0.0316 секунд. Это нормально?

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

    База растёт и строк к выводу станет больше.

    С КАКОГО, я стесняюсь спросить, перепугу, с ростом базы строк к выводу станет больше?
    На тостере с каждым днем прибавляется сотня дебильных вопросов.
    Ты уверен что количество запрашиваемых из базы строк тоже растёт? А если подумать? А если прям вот хорошенько подумать?

    Этот ход мысли напоминает старый еврейский анекдот, который рассказывал Джоэл Спольский в далёком 2001 году:
    Маляр Шлёма подрядился красить пунктирные осевые линии на дорогах. В первый день он получил банку краски, поставил её на дорогу, и к концу дня покрасил 300 метров осевой линии. «Отлично! — сказал прораб. — Быстро работаешь!» и заплатил ему.
    На следующий день Шлёма покрасил 150 метров. «Мда, это, конечно, не так здорово, как вчера, но приемлемо», — сказал прораб и снова заплатил ему.
    Ещё через день Шлёма покрасил всего 30 метров. «Всего лишь 30! — заорал прораб. — Это никуда не годится! В первый день было в десять раз больше! В чём дело?»

    «Ничего не могу поделать, — говорит Шлемиэль. — Каждый день я ухожу всё дальше и дальше от банки!»


    Тебе не кажется что эта логика напоминает твоё "но с каждым днём в БД появляется всё больше и больше записей!"?

    На что ориентироваться? На показатели загрузки процессора или время выполнения запроса или расход памяти?

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

    И вопрос в догонку: если одним запросом я получаю 1500 строк и если в запросе я установлю select нужных мне столбиков - это усложняет запрос или нет? Ведь в первом случае я получаю информацию как есть, а во втором случае процессору надо время чтобы перебрать нужные столбики?!

    Судя по количеству восклицательных знаков - это самый важный вопрос во всём этом и так целиком гениальном тексте. Процессор опасносте!!! Срочно надо спасать!

    Запрос выполняется три сотых секунды, дом рисуется 10, но вопрос почему-то "как узнать , не тормозит ли база?"
    Ну ей-богу, снова как в анекдоте - "Где логика??! Где разум??".

    Сейчас я кеширую результаты php на 60 минут,

    Вот это я понимаю. Сразу заходим с козырей.
    странно что на 60 минут, а не на 24 часа. или вообще сделать сайт статикой. тогда вообще всё летать будет. Или вообще перенести всю БД на клиента. Чего не сделаешь ради борьбы за миллисекунды.

    Как понять есть ли нагрузка на БД?/

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

    А вместо всяких "оптимизаций" типа кэширования на 60 минут запроса, который выполняется пару сотых секунды, или не на покупки бессмысленного диска, а на букварь про работе с БД. И прочитать там про нормализацию, индексы, базовые команды SQL, пагинацию, в конце концов.

    И тогда и твоя микроскопическая БД в 10 тыщ записей, и нормальная база с миллионами строк, будут работать одинаково быстро и эффективно.
    Ответ написан
    8 комментариев
  • Для чего маршруты 255.255.255.255/32 в таблице маршрутизации?

    karabanov
    @karabanov
    Системный администратор
    Это Connected routes или маршруты к непосредственно подключённым сетям.
    Пакеты не могут быть переданы без маршрута. Если маршрут, представляющий целевую сеть, отсутствует в таблице маршрутизации, то пакет будет отброшен.

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

    @ComodoHacker
    Не используйте естественные ключи в качестве первичных. Используйте только суррогатные. Избежите многих проблем.

    Основных проблем с естественными ПК две.
    1. Проходит время, и возникает необходимость поменять естественный ключ. Например, его внесли с ошибкой (человеческий фактор). В вашем случае, допустим ISO решила, что существующий код оказывается не политкорректный, и его нужно поменять. И вам нужно поменять либо одну строку в одной таблице, либо все строки во всех таблицах, которые на нее ссылаются. Чувствуете разницу? А часть данных может быть уже в архиве, read-only и т.д.
    2. Проходит время, и "уникальный" естественный ключ оказывается не уникальным. Например, вам понадобился тот же доллар, но с особым курсом и т.п. Если это ПК, то нормального решения нет, пусть даже сложного, как в п. 1. Вам придется превратить естественный ключ в суррогатный, а для естественного добавить отдельный столбец. Так лучше сделать это с самого начала. :)
    Ответ написан
    Комментировать
  • Почему новая оперативная память не работает в ноутбуке?

    Slayer_nn
    @Slayer_nn
    Гугол, памаги!
    ddr3 не имеет совместимости с ddr3L
    Только наоборот

    Плашку на обмен. Я бы вернул, ибо старье
    И купил в другом магазе
    Тебе нужна ddr3L или PC3L
    Ответ написан
    3 комментария
  • Как подключить принтер из другой подсети?

    hint000
    @hint000
    у админа три руки
    Используйте только LAN-порты на Keenetic и отключите DHCP на Keenetic. Т.е. кабель из Mikrotik'а подключайте в LAN-порт на Keenetic.
    Ответ написан
    3 комментария
  • Какую программу для очистки оперативной памяти?

    karabanov
    @karabanov
    Системный администратор
    В программах подобного рода нет необходимости. Не используйте их.
    Ответ написан
  • Как удалить определенный тег внутри тега?

    DevMan
    @DevMan
    да перестаньте уже насиловать мозг регулярками там, где они не нужны.
    любой XML (и HTML в частности) давно отлично разбирается и обрабатывается стандартными средствами.
    dom parser и xpath к вашим услугам.
    Ответ написан
    2 комментария
  • Как перевести математическую формулу в код Visual Basic?

    vabka
    @vabka
    Токсичный шарпист
    Потомучто нет оператора ^
    Используйте pow
    А умножение всегда делается через *
    Ответ написан
    4 комментария
  • Как сделать защиту от подмены msi файла установщика GPO?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Положить его в место, в котором не будет прав на запись для тех, кого подозреваете в подмене.
    Ответ написан
    1 комментарий
  • Как вернуть строки, полученные из SELECT в процедуре?

    Melkij
    @Melkij
    PostgreSQL DBA
    Может, вы всё-таки будете читать документацию к postgresql, а не к mssql? Или тогда уж оставайтесь с mssql.

    https://www.postgresql.org/docs/current/xproc.html
    A procedure is a database object similar to a function. The difference is that a procedure does not return a value, so there is no return type declaration.


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

    @dodo512
    Переключить в ленивый режим .+?
    f.+?[ldt]
    Ответ написан
    Комментировать
  • Почему sudo apt install не устанавливает файл с расширением .deb?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Потому что dpkg -i.
    Ответ написан
    Комментировать