Задать вопрос
  • Как сделать снимок системы и перенести его на новые харды?

    Melkij
    @Melkij
    убунта... Покажите df -h - может у вас lvm собран и тогда простым pvmove можно переместить всё без простоя.
  • В чем ошибка при установки ноты?

    Melkij
    @Melkij
    Выведите stacktrace и смотрите, где у вас обращение к массиву неверное. Если трассировка выводит в библиотечный код - смотрите, почему вы неправильно используете библиотеку.
  • Почему не работает функция json_encode()?

    Melkij
    @Melkij
    Какая версия PHP?
    Ну и в зависимости от дистрибьютива json могли вынести в отдельный пакет, как например в debian'ах: php5-json/php7-json/php-json в зависимости от релиза
  • Как ускорить запрос выборки геоданных в PostgreSQL?

    Melkij
    @Melkij
    Разумеется сообщение выше актуально, если count(*) сильно больше count(distinct company_id). Если много разных company_id и читать надо все company_id - то группировка всего будет эффективнее и выгоднее экстенсивно поднимать set local work_mem в этой транзакции (глобально не надо).
  • Как ускорить запрос выборки геоданных в PostgreSQL?

    Melkij
    @Melkij
    разница в том, что в одном случае надо просто искать ближайшие к точке, а в другом случае надо найти ближайшие для каждого из company_id

    См. сразу же упомянутый мной lateral join. Если вы можете быстро найти ближайшего соседа для заданного company_id - вы совершенно так же можете быстро найти соседей для списка company_id.

    почему PostGIS должен быть быстрее я не понимаю.

    Потому что KNN по gist индексу отлично считается за один index scan (+ gist_btree для включения company_id в индекс). И да, кучка разных index scan может быть сильно быстрее одного fullscan. См. упомянутый мной же сразу loose index scan - просто потому, что оптимизатор postgres не умеет его делать автоматически.
  • Как ускорить запрос выборки геоданных в PostgreSQL?

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

    А в чём разница между найти ближайшего и найти минимальное расстояние?
    Берёте список уникальных company_id (можно по loose index scan, если уникальных company_id нет в отдельной табличке, но уникальных их не слишком много относительно всей таблицы), затем делаете к этому списку lateral join коррелирующим подзапросом поиска ближайшего соседа с limit 1
  • Как правильно хранить таблицы для быстродействия?

    Melkij
    @Melkij
    Сначала "Подойдут любые варианты", потом чтобы пользователи могли сами ставить. А потом какие неожиданные требования добавятся? Портировать на sqlite?

    Вычислительную производительность компилируемого C достать можно только другим C. Других вариантов нет.
    join 49 таблиц - это факториал от 49 вариантов порядка объединения. Здесь один только планировщик будет думать над задачей дольше, чем скомпилированный C.
    И уж тем более человек в попытке понять, что же вы там пытаетесь посчитать.
  • Как можно отправить левый запрос в базу mysql?

    Melkij
    @Melkij
    spacenear, ремарка про https относилась именно и только к набиранию запроса полностью руками фактически на голых сокетах. Просто потому что шифрование руками набирать неудобно.
    Что угодно чуть-чуть повыше уровнем, что возьмёт tls уровень на себя - и можно снова общаться с сервером даже руками набирая запросы.
    А уж если взять что-то для этого предназначенное как тот же curl - то вообще элементарно.
  • Как можно отправить левый запрос в базу mysql?

    Melkij
    @Melkij
    spacenear, берёте curl и делаете абсолютно любой запрос. Да хоть руками вбить через netcat или telnet, если там простой http, а не https. Да, так можно. На любой url можно прислать любой запрос и только бекенда дело, что при этом случится и как понимать, что запрос пришёл ошибочный.
  • Как можно отправить левый запрос в базу mysql?

    Melkij
    @Melkij
    spacenear, можно вообще не выполнять js, а только отправить запрос на добавление результата.
  • Как реализовать отношения?

    Melkij
    @Melkij
    GutOf, а решений всегда может быть много. В этом как раз и есть задача разработчика - угадать вектор дальнейшего развития и использования системы и соответственно этому выбрать решение.
  • Текст в первичном ключе и его переиндексация?

    Melkij
    @Melkij
    Анатолий Сидоров, да, RAM.
    Для RAM вроде ничего лучше memtest (на сутки) пока не было
    Диски - вопрос интереснее. Наверное badblocks в пишущем режиме будет достаточно. Но сначала память проверить.
  • Почему Float PHP некорректно обрабатывает разряды выше E+15?

    Melkij
    @Melkij
    Возьмите какое-нибудь другое float число схожего порядка и получите другой хвост за значащими разрядами. Этот хвост не имеет значения.

    т.е. 10799141199215210000 хранится как 1.07991411992152E+19?

    Сюрприз: нет. В мантиссе (52 бита всё-таки) для вашего числа хранится что-то вроде 1708452349166847 и читается способом вроде вот такого: +1 * pow(2, 1086-1023) * 1.1708452349166847
    Потому что формат с двоичным основанием.

    Читайте IEEE 754 или его многочисленные объяснения, пригодится однозначно, хотя бы чтобы не пытаться в нём деньги считать.
  • Почему LONG странно себя ведет?

    Melkij
    @Melkij
    Ещё раз напишу: нет в php типа данных long. А если говорить в терминах C - то для long гарантированы минимум 32 бита, а не 64.
    Если вы пользуетесь терминологией java - то я вас просто не пойму, т.к. не знаком с особенностями этого языка (кроме склонности jvm использовать много памяти).

    В PHP при числовом переполнении будет осуществлено приведение типа до float, т.к. терять значение считается языком более нежелательным, чем потеря точности.
  • Почему LONG странно себя ведет?

    Melkij
    @Melkij
    Какая версия PHP, операционная система и разрядность ОС?
    Как минимум в PHP нет типа данных long. Есть только int, размер которого зависит от факторов указанных строкой выше.
  • Ошибка в запросе к базе данных?

    Melkij
    @Melkij
    ммм, а в каких в принципе случаях может быть истинно ваше условие? Когда дата X может быть больше или равна этой же самой дате X + 7 дней?
  • Пропадает интернет после подключения нескольких ПК. Почему?

    Melkij
    @Melkij
    Начните с рисования структуры сети. При том не со слов кого-либо, а проверяя, что так в действительности и скоммутированы линии и настроено оборудование.
    А может и вообще с теории сетей и маршрутизации. - потому что описания "дают доступ в интернет" и "интернет падает во школе" никуда не годится. Как дают? Что после этого происходит в сети? Где пакеты пропадают?
  • Как красиво обновить массив boolean (флагов)?

    Melkij
    @Melkij
    Поправьте теги вопроса. В упомянутом в тегах mysql например нет ни массивов ни даже bool как такового.
  • Как правильно составить запрос для взятия первого значения из группы?

    Melkij
    @Melkij
    Вот loose index scan вручную делать надо только с пониманием, что, где и как именно хотим достать и какие исходя из этого индексы требуются. Т.е. сначала решаем, по каким индексам будет запрос работать хорошо и потом пишем запрос именно для этого поведения, а не как обычно, когда сначала пишется запрос для получения нужных данных и потом смотрим на реальных данные какие для него нужны индексы.
    Обычно в такие дебри залезаем в попытке ускорить то что уже есть и где возможно переписать запрос радикально. Без индекса, под который запрос строился - результат наверняка будет крайне плачевным. Рекурсивные запросы вообще неплохо могут выстрелить в ногу.

    Кстати, вот презентация по нескольким переосмыслениям запросов от моего коллеги и руководителя: https://pgday.ru/presentation/232/5964945ea4142.pdf (запись доклада конференции в свободном доступе к сожалению не опубликовано)