@MongoDBRussian

Страница 103 из 342
Viktor
29.06.2017
08:39:52
можно поиграться с уровнем детализации профайлинга

Ilya
29.06.2017
08:41:08
Для начала мне нужно оптимизировать find с фильтром по датам, сортировкой, и skip() limit()

Ilya
29.06.2017
08:41:25
просто смотреть план запроса и гуглить я так понимаю

Google
Ilya
29.06.2017
08:41:46
в коллекции 20 млн записей

yopp
29.06.2017
08:41:59
Размер коллекции какой?

Ilya
29.06.2017
08:42:11
20 млн записей

yopp
29.06.2017
08:42:21
В гигабайтах

Ilya
29.06.2017
08:42:38
пока незнаю

yopp
29.06.2017
08:45:42
Но как ты знаешь что там 20 млн документов?

Ilya
29.06.2017
08:59:24
заказачик сказал что будет столько

yopp
29.06.2017
08:59:51
Если у тебя нет данных, ты не можешь ничего оптимизировать.

Ilya
29.06.2017
08:59:51
сгенерил миллион записей, ыборка по пол секунды идет

пол секунды - долго

немного позже напишу сколько весит коллекция, как сгенерю данные

На 2 млн записей storageSize() выдает 595 мегабайт (только данные) totalSize() выдает 731 мегабайт (вместе с индексами) Соответственно на 20 млн в среднем будет вес 6 гб

получил что выборка на 2 млн занимает 413 мс

Google
Ilya
29.06.2017
09:43:40
хочу ускорить)

с чего можно начать?

Viktor
29.06.2017
09:47:38
самое простое - индексы

Ilya
29.06.2017
09:47:56
это уже с индексами

Viktor
29.06.2017
09:48:13
а что говорит профайлер? попадает в индекс?

yopp
29.06.2017
09:48:18
Там выше написали — со списка запросов

И QoS для запросов. Фраза «получил что выборка на 2 млн занимает 413 мс» вообще не имеет никакого смысла.

Если ты пытаешься пройтись курсором по 2млн документов — 400мс отличный результат.

Ilya
29.06.2017
09:50:49
я фильтрую коллекцию вот так: "query" : { "$and" : [ { "outSetupTime" : { "$gte" : ISODate("2017-06-29T00:00:00.000Z") } }, { "outSetupTime" : { "$lte" : ISODate("2017-06-29T23:59:59.999Z") } } ] }

время выполнения "millis" : 413,

В индексы судя по всему попадаю? "indexBounds" : { "startKey" : { "outSetupTime" : ISODate("2017-06-29T00:00:00.000Z") }, "startKeyInclusive" : true, "endKey" : { "outSetupTime" : ISODate("2017-06-29T23:59:59.999Z") }, "endKeyInclusive" : true }

это выжимка из db.system.profile.find().pretty()

yopp
29.06.2017
09:53:45
https://docs.mongodb.com/manual/core/query-optimization

https://docs.mongodb.com/v3.4/administration/analyzing-mongodb-performance/

Ilya
29.06.2017
10:25:49
хм, что интересно, один и тот же запрос выполняется разное время в консоли монги и в node.js приложении в консоли 2 мс в node 436 мс

использую mongo native driver

что то в нем тормозит

Viktor
29.06.2017
10:28:03
нужно смотреть как строится запрос в драйвере

может он на самом деле не такой же самый

Igor
29.06.2017
11:34:20
вопрос - есть коллекция, в ней {"_id": 1, "tags": []} {"_id": 2, "tags": ['foo']} {"_id": 3, "tags": ['foo', 'bar']} {"_id": 4, "tags": ['bar']} можно как-нибудь отсортировать* по наличию или отсутствию определенного элемента в тегах? типа db.coll.find({}).sort({'tags.$has': 'foo'}) чтоб вернуло, например, {"_id": 2, "tags": ['foo']} {"_id": 3, "tags": ['foo', 'bar']} {"_id": 1, "tags": []} {"_id": 4, "tags": ['bar']} подводный камень - версия сервера 2.6

Google
Mad
29.06.2017
12:19:06
Добрый день

root@lab1:/data# zcat user.gz | mongorestore —db vk —collection user 2017-06-29T12:19:13.424+0000 the —db and —collection args should only be used when restoring from a BSON file. Other uses are deprecated and will not exist in the future; use —nsInclude instead 2017-06-29T12:19:13.424+0000 using default 'dump' directory 2017-06-29T12:19:13.424+0000 see mongorestore —help for usage information 2017-06-29T12:19:13.424+0000 Failed: mongorestore target 'dump' invalid: stat dump: no such file or directory Что я делаю не так?

mongodb v3.4

yopp
29.06.2017
12:21:59
Там же написали: mongorestore target 'dump' invalid: stat dump: no such file or directory

в архиве что?

Mad
29.06.2017
12:22:58
в архиве результат команды mongodump -d vk -c vk —out=- | pigz > user.gz

Tenni
29.06.2017
12:24:01
не указал директорию

Mad
29.06.2017
12:24:09
Директорию чего?

yopp
29.06.2017
12:24:15
https://docs.mongodb.com/manual/reference/program/mongorestore/

Mad
29.06.2017
12:24:20
И?

Tenni
29.06.2017
12:24:20
ну ты спросил что это значит

Mad
29.06.2017
12:24:37
Да, и потом я спросил, директорию чего я не указал.

yopp
29.06.2017
12:24:40
И?
Почитай внимательно документацию к mongodump/mongorestore

Mad
29.06.2017
12:24:45
Я почитал.

Там в конце точь в точь такая же команда, как я вам показал.

Если я недостаточно внимательно читал, подскажите, где я ошибся.

Без ссылок на маны т.к. это равносильно ответу "не знаю"

Mad
29.06.2017
12:25:34
You can also pipe data directly into to mongorestore through standard input, as in the following example: zcat /opt/backup/mongodump-2014-12-03/accounts.people.bson.gz | mongorestore —collection people —db accounts AUTHOR MongoDB Documentation Project COPYRIGHT 2011-2015

Google
Tenni
29.06.2017
12:25:40
nsinclude уже пора юзать :)

Mad
29.06.2017
12:28:13
А, кажется понял

В linux man кривой :)

По ссылке, что дал yopp видно "-" в конце команды, у меня же этого дефиса нету в мане

yopp
29.06.2017
12:28:56
В linux man кривой :)
Да, неточность

последним аргументом с -d и -c оно ожидает путь к .bson файлу

Mad
29.06.2017
12:30:57
Попробую зарепортить им баг

yopp
29.06.2017
12:31:15
Проще сразу пуллреквест сделать :)

https://github.com/mongodb/mongo/blob/master/debian/mongorestore.1

Mad
29.06.2017
12:33:46
о, попробую

Tenni
29.06.2017
14:52:45
чатик, нид хелп. При восстановлении конфиг-сервера из бекапа есть такая коллекция config.version https://docs.mongodb.com/manual/reference/config-database/#config.version Обязательно ли ее заменять при восстановлении и если допустим не затирать - чем это грозит? mongodb 3.4.5

Tenni
29.06.2017
15:50:58
Почему возникла мысль её _не_ восставаливать?
Failed: config.version: error dropping collection: cannot drop config.version document while in --configsvr mode =)

поэтому вопрос такой. По сути ее можно восстановить иначе, но все же интересно.

всплыло в 3.4

забыл, https://jira.mongodb.org/browse/SERVER-28796

сегодня
29.06.2017
15:56:52
GNU/Docker
29.06.2017
15:58:14
Сегодня четверг

Опять ты пытаешься меня обмануть

сегодня
29.06.2017
15:59:49
Я лишь заложнек имени

Google
Tenni
29.06.2017
16:19:42
mongorestore с флагом --drop

мне просто самому стало интересно почему они в 3.4 так сделали, даже не смотря что на багтрекере есть запись.

Tenni
29.06.2017
17:12:51
да, как альтернатива

[Anonymous]
30.06.2017
02:32:19
@FolderArchive - канал, где сливают платный полезный - образовательный контент и курсы, например можно скачать курсы "Нетологии" или все курсы "Бизнес Молодости".

mardybm
30.06.2017
03:37:14
господа, почему в brew так долго обновляют монгу?

3.4.5 вышла 2 недели назад

Igor
30.06.2017
03:51:03
ну обнови сам

https://github.com/Homebrew/homebrew-core/blob/master/Formula/mongodb.rb https://github.com/Homebrew/homebrew-core/blob/master/CONTRIBUTING.md

Max
30.06.2017
03:57:13
3.4.5 как-то через час работы умудрилась сегфолтнуться 2017-06-20T12:07:56.256+0000 F - [thread2] Invalid access at address: 0x782017-06-20T12:07:56.306+0000 F - [thread2] Got signal: 11 (Segmentation fault). 0x7fa59499fbe1 0x7fa59499edf9 0x7fa59499f466 0x7fa592084890 0x7fa5920804d3 0x7fa5952d259b 0x7fa5952d6905 0x7fa595327baa 0x7fa5953227f3 0x7fa595322b87 0x7fa595324533 0x7fa59538e406 0x7fa59207d064 0x7fa591db262d---— BEGIN BACKTRACE —---{"backtrace":[{"b":"7FA593435000","o":"156ABE1","s":"_ZN5mongo15printStackTraceERSo"},{"b":"7FA593435000","o":"1569DF9"},{"b":"7FA593435000","o":"156A466"},{"b":"7FA592075000","o":"F890"},{"b":"7FA592075000","o":"B4D3"},{"b":"7FA593435000","o":"1E9D59B"},{"b":"7FA593435000","o":"1EA1905","s":"__wt_split_multi"},{"b":"7FA593435000","o":"1EF2BAA","s":"__wt_evict"},{"b":"7FA593435000","o":"1EED7F3"},{"b":"7FA593435000","o":"1EEDB87"},{"b":"7FA593435000","o":"1EEF533","s":"__wt_evict_thread_run"},{"b":"7FA593435000","o":"1F59406","s":"__wt_thread_run"},{"b":"7FA592075000","o":"8064"},{"b":"7FA591CCA000","o":"E862D","s":"clone"}],"processInfo" "mongodbVersion" : "3.4.5", "gitVersion" : "520b8f3092c48d934f0cd78ab5f40fe594f96863", "compiledModules" : [], "uname" : { "sysname" : "Linux", "release" : "3.16.0-4-amd64", "version" : "#1 SMP Debian 3.16.39-1 (2016-12-30)", "machine" : "x86_64" }, "somap" : [ { "b" : "7FA593435000", "elfType" : 3, "buildId" : "56B113C6F98A9A037CA6006A2E9C21BF89D61421" }, { "b" : "7FFC1D92C000", "path" : "linux-vdso.so.1", "elfType" : 3, "buildId" : "856A20F5A861E2D4F656A3D865B4D6158E2D607F" }, { "b" : "7FA592FB1000", "path" : "/usr/lib/x86_64-linux-gnu/libssl.so.1.0.0", "elfType" : 3, "buildId" : "21115992A1F885E1ACE88AADA60F126AD9759D03" }, { "b" : "7FA592BB5000", "path" : "/usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0", "elfType" : 3, "buildId" : "32E9A5B9EED626E93DEEB00A49033F78652DB9A после этого не падала, но отношусь к ней настороженно

Igor
30.06.2017
03:58:12
кстати уже пуллреквест есть https://github.com/Homebrew/homebrew-core/pull/15112

Peter
30.06.2017
20:23:27
Как сделать lookup масива который в масиве?

Igor
30.06.2017
20:25:36
setIsSubset может?

Artem
01.07.2017
10:08:15
Всем привет, подскажите, как правильно настроить индекс для полнтекстового поиска. Для модели вида: { ru: {title: 'Электроника'}, en: {title: 'Electronics'}, icon_id: "electronics" }

Timur
01.07.2017
11:15:50
Полнотекстовый поиск только с помощью regex можно сделать, насколько я понял. Но он очень не эффективно работает, кроме случая, когда постфиксное выражение ищется. Я сделал массив дополнительный для каждого документа, куда спличу по пробелу слова из нескольких свойств документа. На него сделал индекс. И по нему ищу.

Страница 103 из 342