Арби
Nef007
как прописать условие , что если массив больше 3?
Харамбус
Мб paRtitions?
Nef007
Nef007
yopp
Nef007
Alaout
Подскажите как при наличии id получить индекс в агрегации?
Вячеслав
Добрый день. сижу на реляционной субд (4 основные таблицы по 65-100 млн записей).
Под виртуалку выделено 4 ядра ЦП и 48 Гб ОЗУ.
Запросы выполняются довольно медленно.
Вот думаю на mongodb уйти, чтобы была 1 коллекция с 65 млн записей
Вячеслав
за месяц записывается ~1.8 млн записей. иногда происходят операции чтения (когда нужно что-то найти по одному или паре полей)
Вячеслав
подойдёт mongo для такой задачи? 100 млн это много или как? )
Вячеслав
записываются заголовки и тело почтовых писем (от кого, кому, тема письма, дата/время, имена файлов вложений, текст тела письма без тегов и стилей)
Харамбус
Вячеслав
Andrey
Вячеслав
Вячеслав
диски быстрые. сеть до NASa 1 Гбит
Вячеслав
какие точно - не знаю
Andrey
Andrey
Сомневаюсь, что переезд на иную базу изменит что-то.
Вячеслав
так... могу в принципе физический сервер выделить под СУБД
Andrey
так... могу в принципе физический сервер выделить под СУБД
Приведу плохой пример, но, что есть, 8.9 млрд записей в 1 коллекции, сложная запись в базу, в день новых записей ну 1 млн, апдейт еще несколько миллионов, 8vCPU(desktop), 32 RAM, диск nvme на 2 Tb - поиск до 1 секунды - до 2-4 тысяч записей выгрузка.
Вячеслав
Есть свободный с 32 ядрами, 64 Гб ОЗУ
Вячеслав
что-то не пойму как понять какой диск )
Вячеслав
Харамбус
Andrey
Это пример плохого физ сервера?
Это плохой пример, потому что, исключительно для локальных задач небольшой команды внутри компании. Это не прод решение.
Вячеслав
ну у меня тоже для локальных задач
Вячеслав
мы ещё сами оригиналы сообщений храним в eml-файлах. но они на отдельном NAS. Там 30 ТБ
Andrey
Но по скорости - все устраивает. Единственное, что проблемы с релокейшеном сервера и данных.
Роман
Всем привет
Есть таблица у нас к примеру:
db.testtbl.insertMany([
{field: [{id: 1, name: "first"}, {id: 2, name: "second"}]},
{field: [{id: 3, name: "three"}]},
{field: [{id: 4, name: "four"}, {id: 5, name: "five"}]},
])
У меня есть список активных id - 1, 3, 4, 5
Все вложенные записи с не валидными id надо удалить (в данном случае это {id: 2, name: "second"})
Можно это как-то это одним запросом сделать?
Роман
Пока в голову только приходит вычитывать записи, проверять id, удалять не валидные строки и обратно записывать после
Харамбус
мб перед тем как передавать данные в инсерт их как то форматнуть?
Vladyslav
Всем привет
Есть таблица у нас к примеру:
db.testtbl.insertMany([
{field: [{id: 1, name: "first"}, {id: 2, name: "second"}]},
{field: [{id: 3, name: "three"}]},
{field: [{id: 4, name: "four"}, {id: 5, name: "five"}]},
])
У меня есть список активных id - 1, 3, 4, 5
Все вложенные записи с не валидными id надо удалить (в данном случае это {id: 2, name: "second"})
Можно это как-то это одним запросом сделать?
одним запросом сделать - имеется ввиду перед записью?
то обыным жсом делается
Vladyslav
Роман
так данные уже в таблице и их много
Роман
я не могу подругому записать
Vladyslav
Vladyslav
пишешь скрипт на удаление + запускаешь его на бд - все
Роман
Хм, похоже это сработало
db.testtbl.updateMany({}, {$pull: {field: {id: {$nin: [1, 3, 4, 5]}}}})
Вячеслав
Вячеслав
шляпа?
Вячеслав
это скорость чтения командой hdparm -t
Flake
Привет, средствами монгус, можно ли сделать запросы по выборке последних добавленных записей в обратном порядке? Сделал как на скрине, выглядит логично, но работает не так как хочу.
Alaout
Подскажите как при наличии id получить индекс в агрегации?
Бд:
"user_id":"1",
"user_id":"2"
Вячеслав
Вячеслав
Вячеслав
Nick
вот тест на чтение
Увы но скорость линейного чтения это бесполезная информация, пока профиль выборки не чтение больших объемов информации, как если бы вы файл читали. В базах редко когда такой профиль нагрузки.
Вячеслав
иногда надо что-то найти, поэтому будут селекты по паре-тройке полей
Вячеслав
храниться будут заголовки почтовых сообщений + ссылка на оригинальный файл сообщения
Вячеслав
крч, бэкап всей почты организации сроком в 3 года (срок исковой давности)
Вячеслав
сами файлы на отдельном NASe
Вячеслав
сейчас это всё крутится на mysql с сетевым диском и убогим пользовательским интерфейсом
Вячеслав
1 основная таблица с 65 млн записями и ещё 3 дополнительные по 100 млн записей one-to-many
Вячеслав
Flask - Flask-Admin - FastAPI - mongo
Вячеслав
планирую так
Вячеслав
вот думаю mongo подойдёт вообще или нет... если я всё в одну коллекцию сваливать буду
Вячеслав
Вячеслав
редко через subject like '%keyword%'
Вячеслав
поля которые ищутся по полному совпадению, конечно же индексированы
Вячеслав
Вячеслав
по получателю около 25 минут )
Вячеслав
но я думаю что дело в том что сейчас используются сетеве диски
Nick
Вячеслав
мне всё равно сейчас переписывать всё
Nick
Объем базы сейчас какой?
Вячеслав