programmer0101, ну вот смотрите, вам следует внимательно почитать доку по пульсе.
Например, она умеет общаться через разделяемую память, умеет работать через сокеты. Оба варианта вполне себе совместимы с PHP.
Мужик, это не та тема, где можно по-быстрому найти готовую либу. Тут надо разбираться в протоколе и писать свою реализацию. Так что запасайся терпением, говори боссу, что тебе надо полгода и вперед.
Но честно тебе скажу, писать такую штуку на PHP затея не из лучших, я серьезно.
Возьми обычный С и пиши на нем.
Со звуком очень много проблем, прогать его сложно, т.к. надо постоянно следить за тем, чтобы буфер не пустел, но и в тоже время не было переполнения. Опять же это требует высокой производительности и гарантированного времени отклика, а также асинхроннности. Это накладывает жесточайшие требования к приложению и PHP тут далеко на фаворит. Для такого рода приложений это медленный язык. Если и писать, то на C или Rust.
Артем, смотрите на вывод explain. Прокачанный навык телепатии говорит о том, что индекс не используется.
Не используется по причине того, что JS язык не типизированный, а значит необходимо производить сравнение, а значит приведение типов, и далее инвертировать результат.
Зачем делать find({'field':{$ne: false}}), когда можно делать просто find({'field': true})?
Владимир Куц, вариант с версией не самый лучший, т.к. вам нужно заботиться о версионировании и т.д. Гораздо проще использовать шаблон с updatedAt полем.
Чисто технически я не вижу никаких проблем иметь столько полей, сколько нужно.
С другой стороны, если нужно много сложных многоколоночных выборок, то для этого есть специализированные колоночные хранилища.
Я бы реализовал это все в монге, только выделил бы отдельную коллекция для хранения метаданных для колонок. Да и в последней версии уже есть фасеточный поиск.
Серегей Дуров, если вам нужна жесткая структура, тогда используйте PostreSQL.
Если у вас проблемы с описанием стурктур, то обратите внимание на разные ODM, например https://mongoosejs.com/docs/guide.html
Они позволяют поддерживать структуру или даже реализовывать связи через populate.
Мне кажется, мы по-разному смотрим на задачу. Не могли бы расписать, что именно вы пытаетесь реализовать и как?
Владимир Олохтонов, тихий моноблок, 27" c IPS ретина матрицей. Нет таких компов. MS Surface Studio вроде как пыжится, но все равно и рядом не валялось.
Владимир Олохтонов, вот я люблю покопаться в кишках, схемы разные собираю/придумываю, код для железяк пишу в качестве хобби. Тем не менее купил себе iMac за свои кровные. Купил по простой причине - альтернатив ему просто нет.
Не было 5 лет назад и нет сейчас. Просто у всех, кто пытается, выходят куски говна.
Просто хороший инструмент всегда стоит дорого. Возьмите HSS сверло из Германии и Китая. С виду одинаковы, но немецкое сделает 1000 отверстий, а китайское умрет на третьем.
Проблема в том, что хороший инструмент это не только сам язык, но экосистема вокруг него, документация, управление зависимостями и т.д. Вот даже взять современный PHP, он ведь стал весьма неплох, у него хорошая экосистема. А казалось бы здоровский Go-lang сейчас очень сильно штормит из-за плохого управления зависимостями.
Соглашусь с neol. Percona Server + xtrabackup будут прекрасно работать в связке. Плюс у вас появится возможность делать бэкап в фоне. Лет 7 назад у меня был очень позитивный опыт в использовании продуктов от Percona.
Вместо издевательства в виде запуска дампа каждые 2 часа следует подумать о нормальной репликации и еженедельном полном бэкапе.
пояляется из-за потери соединения. Похоже, что клиент сам закрывает соединение.
Посмотрите вот здесь https://jira.mongodb.org/browse/NODE-982 Там в последнем комментарии есть настройки для клиента.
SmInc, с буфером я наелся говна по полной программе. Пробовал присвоение пустой строки, но оно не помогло. А вот такой костыль с принудительной зачисткой нулями сработал.
Насчет лапши согласен, имена переменных выбраны не очень мудро. А что еще?
Я на сях со времен колледжа не писал, так что приму пинки с благодарностью. Долой говнокод!