Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
fkthatHett, А в чем, в общем-то, преимущество хранения в бинарном виде, кроме размера поля? В строгой типизации, блиат ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2019, 22:28 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
Свеженький пример 21893157 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2019, 22:29 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
SiemarglСвеженький пример 21893157 И при чем тут типизация. Точно так же можно куда-нибудь сохранить вполне себе строготипизированные 8 байтов, а потом рвать волосы на джоппе, что они никак обратно на такие же строготипизированные 4 байта не натягиваются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2019, 22:44 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
Для Mongo нет выделенного типа данных Ipv4, Ipv6. Все равно придется строкой хранить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2019, 22:47 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
maytonДля Mongo нет выделенного типа данных Ipv4, Ipv6. Все равно придется строкой хранить. Binary еще не проходили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2019, 22:51 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
HettmaytonДля Mongo нет выделенного типа данных Ipv4, Ipv6. Все равно придется строкой хранить. Binary еще не проходили? Покажите как вы будете с этим Binary работать на примере в Mongo. Создайте несколько документов с полем IPv6-Binary. И положите туда к примеру такие адреса: Код: sql 1. 2. 3. 4. Я хочу посмотреть какие усилия вы на это потратите. P.S. Нет ничего лучше чем постижение истины в примерах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2019, 23:34 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
maytonСоздайте несколько документов с полем IPv6-Binary. И положите туда к примеру такие адреса: Хм. А в чём проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2019, 23:51 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
Просто хочу посмотреть вариант с строковым типом и с Binary. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2019, 00:05 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
maytonПросто хочу посмотреть вариант с строковым типом и с Binary. Я в жизни не видел Mongo, возможно, там какая-то специфика, а из общего представления о binary не вижу в задаче никаких сложностей. Скорее я бы посмотрел, как Вы в случае строковой реализации выдадите правильный результат сравнения адресов ::1 , 0::1 и 0::0::1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2019, 00:38 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
softwarer...Я в жизни не видел Mongo... https://www.jdoodle.com/online-mongodb-terminal если есть интерес то для string варианта скопируй туда Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2019, 02:47 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
softwarerСкорее я бы посмотрел, как Вы в случае строковой реализации выдадите правильный результат сравнения адресов ::1 , 0::1 и 0::0::1. Просто нормализовывать все входные данные перед использованием. Я не топлю за то, чтобы прямо хранить IP как строку, и никак больше. Как уже писали, все должно зависеть от задачи. Можно, наверное, придумать ситуации, когда его вообще лучше по отдельным полям раскидать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2019, 06:18 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
mayton Я хочу посмотреть какие усилия вы на это потратите. P.S. Нет ничего лучше чем постижение истины в примерах. PHP Код: php 1. Java Код: java 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2019, 07:01 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
Это с чем я работал (и как). В монгошелле вы конечно не найдете, но это опять же к вопросу зачем в бд лазить руками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2019, 07:06 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
HettЭто с чем я работал (и как). В монгошелле вы конечно не найдете, но это опять же к вопросу зачем в бд лазить руками. Когда-то я даже задавался такими вопросами https://stackoverflow.com/questions/28537599/get-mongobindata-value-from-mongo-shell ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2019, 07:10 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
softwarer 0::0::1. Сокращение в адресе может быть только одно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2019, 07:20 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
fkthatПросто нормализовывать все входные данные перед использованием. Но ведь нормализация - это по сути to_text(to_binary(string_value)). То есть такой ответ означает, что положить туда "такие адреса" не сложнее, чем любые другие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2019, 08:39 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
fkthatв теории guid в четыре раза меньше, но на практике разницы именно из-за размера никакой. И на практике разница может быть 4 раза, и даже может быть 1000 раз. Если в память помещается весь индекс с интами, а с гуидами нет, например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2019, 12:25 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
vikkivsoftwarer...Я в жизни не видел Mongo... https://www.jdoodle.com/online-mongodb-terminal если есть интерес то для string варианта скопируй туда Код: sql 1. 2. 3. 4. 5. 6. 7. Здесь у меня будет несколько дополнений. По юзкейсу. Использовать IPv6 поле как ObjectId. Скорее всего неверно. Мой юзкейс предполагает что Ipv6 - это атрибут документа. А не уникальный ключ типа Objectid. В качестве вышеуказанного лучше использовать встроенные в Mongo генераторы которые обеспечат правильный уникальный ключ. Если конечно мы не делаем базу для обратного nslookup. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2019, 14:47 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
HettmaytonЯ хочу посмотреть какие усилия вы на это потратите. P.S. Нет ничего лучше чем постижение истины в примерах. PHP Код: php 1. Java Код: java 1. 2. 3. 4. 5. Типизацию я поддерживаю. Как способ strong check данных на входе и на выходе. Но из личного опыта использования баз данных я остаюсь убежден в том что строковый формат представления информации на сегодняшний день является наиболее удобным и универсальным. Если-бы было наоборот - то в монго мы бы вставляли просто Java-serialized объекты в Externalized или Serialized формате как в key-value db. Но это не происходит. На практике мы всё равно используем BSON-дерево из различных типов большая часть всё равно строковые (именно в силу природы вещей, или в силу входных данных). Более того. Все новые. Неизвестные и неидентифицированные входные данные 99% будут строками. Такой-вот либерализм этой модели. Строгая типизация всего документа скорее всего противоречила-бы самой идее Mongo-документа или навязывала-бы нам другое техническое задание где был-бы не Mongo-двигатель а какой-нибудь RDBMS. Либеральный тип sting даст нам возможность залоггировать IPv4, IPv6, domain-name и более широкий спектр значений. А проверки на домен значений мы можем сделать на клиенте. По поводу экономии места и т.п. Мы живём в эпоху BigData и носителей информации которые стоят меньше цента за мегабайт. И разумно думать скорее об удобстве программирования и использования. Никто вас не похвалит за экономию 96 (128 - 32 = 96bit) бит информации за каждый документ. (Да я еще раз делаю упор именно на документ. А документ это порция информации заведомо больше чем data-row для key-value. Я вангую что документ обычно начинаетяс от 1 килобайта информации) А вот проблемы при отчотах (два поля для IPv4, IPv6) или кастинг на map-reduce операциях IPv6 (кстати) при грамотном распределении блоков позволит кстати экономить место на нулях в нотации записи адреса. Линки по теме https://docs.mongodb.com/manual/reference/bson-types/#objectid http://www.ciscopress.com/articles/article.asp?p=2803866 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2019, 15:10 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
alex55555fkthatв теории guid в четыре раза меньше, но на практике разницы именно из-за размера никакой. И на практике разница может быть 4 раза, и даже может быть 1000 раз. Если в память помещается весь индекс с интами, а с гуидами нет, например. Для MSSQL если индекс кластерный, то пофиг - потому что там кластерный индекс это вся таблица. Как в других БД я не знаю. И я не бог весть как DBA (не моя сфера), но как-то с трудом представляю, чтобы 4-байтовый индекс в память залез, а вот уже 16-байтовый никак - это, наверное, надо как-то совсем уж на краю лимита памяти балансировать. Проблема с производительностью там возникает cовсем в другом - когда по незнанию используют для кластерного индекса обычный guid, а не "sequential". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2019, 15:56 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
maytonvikkivпропущено... https://www.jdoodle.com/online-mongodb-terminal если есть интерес то для string варианта скопируй туда Код: sql 1. 2. 3. 4. 5. 6. 7. Здесь у меня будет несколько дополнений. По юзкейсу. Использовать IPv6 поле как ObjectId. Скорее всего неверно. Мой юзкейс предполагает что Ipv6 - это атрибут документа. А не уникальный ключ типа Objectid. В качестве вышеуказанного лучше использовать встроенные в Mongo генераторы которые обеспечат правильный уникальный ключ. Если конечно мы не делаем базу для обратного nslookup. А где здесь ObjectId? Просто строку вставили в качестве _id. Никакого ObjectId здесь нет и в помине. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2019, 16:03 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
Hettmaytonпропущено... Здесь у меня будет несколько дополнений. По юзкейсу. Использовать IPv6 поле как ObjectId. Скорее всего неверно. Мой юзкейс предполагает что Ipv6 - это атрибут документа. А не уникальный ключ типа Objectid. В качестве вышеуказанного лучше использовать встроенные в Mongo генераторы которые обеспечат правильный уникальный ключ. Если конечно мы не делаем базу для обратного nslookup. А где здесь ObjectId? Просто строку вставили в качестве _id. Никакого ObjectId здесь нет и в помине. Вы - специалист в MongoDb? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2019, 16:06 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
mayton Тут мне вспоминается текст из Бородино: > Земля тряслась — как наши груди, > Смешались в кучу кони, люди, Это же надо было так все в кучу намешать. maytonТипизацию я поддерживаю. Как способ strong check данных на входе и на выходе. Но из личного опыта использования баз данных я остаюсь убежден в том что строковый формат представления информации на сегодняшний день является наиболее удобным и универсальным. Надеюсь числа не храните в строках? А то напридумывали всяких форматов с плавающей точкой, проще в строке сохранить, а потом на яве сразу передать эту строку в конструктор BigDecimal, да? maytonЕсли-бы было наоборот - то в монго мы бы вставляли просто Java-serialized объекты в Externalized или Serialized формате как key-value db. Да вставляйте, кто не дает то. Если вы не видите причин чтобы так не делать, то делайте. mayton Но это не происходит. На практике мы всё равно используем BSON-дерево из различных типов большая часть всё равно строковые (именно в силу природы вещей, или в силу входных данных). Более того. Все новые. Неизвестные и неидентифицированные входные данные 99% будут строками. Такой-вот либерализм этой модели. Что у вас там за неидентифицированные данные? maytonСтрогая типизация всего документа скорее всего противоречила-бы самой идее Mongo-документа или навязывала-бы нам другое техническое задание где был-бы не Mongo-двигатель а какой-нибудь RDBMS. Строгая типизация это что такое? Вообще в монге есть валидация схемы, но вы про не знали конечно https://docs.mongodb.com/manual/core/schema-validation/ По вашему, получается, монга противоречива самой себе? Да и не пойму я полета вашей мысли, у вас одно и то же поле в пределах коллекции может от документа к документу типы менять? maytonЛиберальный тип sting даст нам возможность залоггировать IPv4, IPv6, domain-name и более широкий спектр значений. А проверки на домен значений мы можем сделать на клиенте. Да это понятно, что можно. Тут вопрос не в том, что можно, а в том как лучше. При поиске по коллекции тоже будете ее на клиенте перебирать? maytonМы живём в эпоху BigData и носителей информации которые стоят меньше цента за мегабайт. И разумно думать скорее об удобстве программирования и использования. Никто вас не похвалит за экономию 96 (128 - 32 = 96bit) бит информации за каждый документ. (Да я еще раз делаю упор именно на документ. А документ это порция информации заведомо больше чем data-row для key-value. Я вангую что документ обычно начинаетяс от 1 килобайта информации) А вот проблемы при отчотах (два поля для IPv4, IPv6) или кастинг на map-reduce операциях Вы вроде в разделе Java завсегдатый, а что такое биг-дейта не знаете? Зачем ее сюда приплетать, какое отношение она имеет к вопросу о способе хранения данных в монге? Или вы хедупом будете потом записанный ранее " IPv4, IPv6, domain-name и более широкий спектр значений" искать по коллекции с непонятными полями? Более того, тут в топике уже не раз написали о том, что проблема не столько в дисковом пространстве, сколько в ОЗУ, в которой индекс загружен. И экономию в битах измерять, это весьма странно? А индекс посчитали? А если их несколько? Откуда информация про 1 килобайтный размер документа вообще? maytonIPv6 (кстати) при грамотном распределении блоков позволит кстати экономить место на нулях в нотации записи адреса. Вот рандомный IPv6 адрес 2a02:810c:1bf:b204:f142:ca18:6b06:484b Чтобы не быть голословным, продемонстрируйте пожалуйста, как вы грамотно блоки распределите для экономии? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2019, 16:23 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
maytonHettпропущено... А где здесь ObjectId? Просто строку вставили в качестве _id. Никакого ObjectId здесь нет и в помине. Вы - специалист в MongoDb? Что подразумевается под "специалист"? Больше 5 лет я с ней работаю. Вы так на вопрос то и не ответили, где ObjectId? Не съезжате с темы, уважаемый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2019, 16:25 |
|
||
|
String constants vs int
|
|||
|---|---|---|---|
|
#18+
Hettmaytonпропущено... Вы - специалист в MongoDb? Что подразумевается под "специалист"? Больше 5 лет я с ней работаю. Вы так на вопрос то и не ответили, где ObjectId? Не съезжате с темы, уважаемый. Отлично. Я ждал этого. Тогда почему был использован Код: javascript 1. ? вместо Код: javascript 1. Это - дизайн будущей БД. И любое действие надо обосновывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.05.2019, 19:11 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=39818284&tid=1339936]: |
0ms |
get settings: |
111ms |
get forum list: |
117ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
184ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 559ms |
| total: | 1044ms |

| 0 / 0 |
