powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / СУБД для временного хранения данных из бинарного файла (под Delphi).
25 сообщений из 311, страница 7 из 13
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762581
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
> Дословно:
> 1) Данные помещаются в хэш-таблицу.
> 2) Значение хэша служит индексом в этой таблице.
> 3) Таблицы упорядочена по возрастанию индекса.
>
> i и j в данном случае - индексы элементов хэш-таблицы. То есть сами значения хэшей.

Короче, сразу видно, что ты даже ни разу не пользовался хэш-таблицей никогда.
Индексом в хэш-таблице служит ключ данных, а хэш-функцию и её результат ты
никогда и не видишь. Кроме того, в современных хэш-таблицах функция эта ещё
и переменная, она меняется со временем.

Я извиняюсь, но...

У меня сложилось подозрение, что Вы сильно зауживаете понятие и использование хэш-функций и хэш-таблиц.
По сути UPPER, LOWER, не говоря уже о SOUNDEX, тоже могут считаться хэш-функциями, а индексы в БД - хэш-таблицами.
Соответствеенно, и сама хэш-функция известна, и доступ к ее результату тоже имеется.
И у Вас не совсем правильный вывод о том, что значение хэш-функции "меняется со временем": на самом деле хеширование выполняется с конкатенацией метки времени и оригинальным значением - потому и создается такое впечатление...

При необходимости часто делать выборки из больших таблиц по точному совпадению в полях больших размеров (например, текстовых идентификаторов), для ускорения поиска и уменьшения места, занимаемого индексами физической таблицы, можно использовать индекс по значению хэш-функции для этого конкретного поля. Соотвественно, в условии выборки используется уже не значение поля, а значение хэш-функции от кроиерия выборки по этому полю. Естественно, что не следует забывать про возможные коллизии при этом.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762699
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 04/20/2012 12:31 PM, Dimitry Sibiryakov wrote:

> MasterZiv
> Индексом в хэш-таблице служит ключ данных
> А адресного пространства хватит на данные с ключом размером в пару килобайт?..

Браво, Дмитрий, пиши ещё!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762717
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> У меня сложилось подозрение, что Вы сильно зауживаете понятие и использование
> хэш-функций и хэш-таблиц.
> По сути UPPER, LOWER, не говоря уже о SOUNDEX, тоже могут считаться
> хэш-функциями, а индексы в БД - хэш-таблицами.

Хэш-функция в данном случае -- это то, что используется внутри хэш-таблицы для
хэширования данных. В данном топике вообще обсуждают не хэш-функции, а
хэш-таблицы, так что все остальные применения термина "хэш-функция" в данном
топике неуместны.


> Соответствеенно, и сама хэш-функция известна, и доступ к ее результату тоже имеется.
> И у Вас не совсем правильный вывод о том, что значение хэш-функции "меняется со
> временем": на самом деле хеширование выполняется с конкатенацией метки времени и
> оригинальным значением - потому и создается такое впечатление...

Чё? Я имел в виду, что если ты возмёщь одну современную хэш-таблицу в
произвольном языке программирования и начнёшь её заполнять, сначала
для хэширования будет использоваться одна хэш-функция, потом, с ростом
таблицы, возможно, она будет заменена на другую (прозрачно для пользователя,
естестенно).

> При необходимости часто делать выборки из больших таблиц по точному совпадению в
> полях больших размеров (например, текстовых идентификаторов), для ускорения
> поиска и уменьшения места, занимаемого индексами физической таблицы, можно
> использовать индекс по значению хэш-функции для этого конкретного поля.
> Соотвественно, в условии выборки используется уже не значение поля, а значение
> хэш-функции от кроиерия выборки по этому полю. Естественно, что не следует
> забывать про возможные коллизии при этом.

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

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762733
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivпотом, с ростом таблицы, возможно, она будет заменена на другую

Гениально! Пеши есчо!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762777
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovMasterZivпотом, с ростом таблицы, возможно, она будет заменена на другую

Гениально! Пеши есчо!


В том то и дело, что это не он гениален, это ты слегка туповат.
Модератор: в следующий раз за переход на личности буду банить
Поверь уж на слово человеку который профессионально курит алгоритмы хештаблиц,
пишет код и тестирует их уже второй год ...
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762799
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistПоверь уж на слово человеку который профессионально курит алгоритмы хештаблиц, пишет код и
тестирует их уже второй год ...

Не поверю. Продемонстрируй, что происходит, когда в таблицу уже загнали 100500 записей,
она разрослась и - опа! - решила поменять хэш-функцию.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762814
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Не поверю. Продемонстрируй, что происходит, когда в таблицу уже загнали 100500
> записей,
> она разрослась и - опа! - решила поменять хэш-функцию.

Перехэширование.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762826
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovBazistПоверь уж на слово человеку который профессионально курит алгоритмы хештаблиц, пишет код и
тестирует их уже второй год ...

Не поверю. Продемонстрируй, что происходит, когда в таблицу уже загнали 100500 записей,
она разрослась и - опа! - решила поменять хэш-функцию.


Да, именно так и есть. Поскольку хорошую равномерную хешфункцию можно выбрать только зная все элементы массива.
При большом количестве элементов растет количество коллизий и хештаблица выраждается в унылый тормоз если хешфункция подобрана неудачно для этого ряда.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762862
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О сколько Диме открытий чудных,
готовит просвещенья век (с)
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762875
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistПри большом количестве элементов растет количество коллизий и хештаблица выраждается в унылый тормоз если хешфункция подобрана неудачно для этого ряда.
Поэтому в индексах чаще и используют деревья, сруктура которых по сути и является динамической hash функцией. Но естественно требует дополнительных затрат на постоянное обновление.

P.S. Я понимаю, что за обсуждение действий модераторов тут банят, чуть ли не пожизненно, но Дмитрий всего лишь процитировал то, что ему написали несколькими страницами ранее.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762882
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bazist О сколько Диме открытий чудных,
готовит просвещенья век (с)

А теперь в кратце, Вы тоже считаете, что хеш таблица не упорядоченна, потому что ее порядок не соответствует некому мифическому ключу?
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762895
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivПерехэширование.

Подробнее, пожалуйста. Что Вы зовёте "перехешированием"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762900
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Поэтому в индексах чаще и используют деревья, сруктура которых по сути и
> является динамической hash функцией. Но естественно требует дополнительных
> затрат на постоянное обновление.

Это твои фантазии.

> P.S. Я понимаю, что за обсуждение действий модераторов тут банят, чуть ли не
> пожизненно, но Дмитрий всего лишь процитировал то, что ему написали несколькими
> страницами ранее.

Кто его банит-то ? Без него скучно будет. :-)



Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762903
sphinx_mv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
> У меня сложилось подозрение, что Вы сильно зауживаете понятие и использование
> хэш-функций и хэш-таблиц.
> По сути UPPER, LOWER, не говоря уже о SOUNDEX, тоже могут считаться
> хэш-функциями, а индексы в БД - хэш-таблицами.

Хэш-функция в данном случае -- это то, что используется внутри хэш-таблицы для
хэширования данных. В данном топике вообще обсуждают не хэш-функции, а
хэш-таблицы, так что все остальные применения термина "хэш-функция" в данном
топике неуместны.

Чем больше Вы пишете, тем больше я сомневаюсь, что даже в этом узком контексте Вы понимаете суть хэш-функций и хэш-таблиц...
MasterZiv> Соответствеенно, и сама хэш-функция известна, и доступ к ее результату тоже имеется.
> И у Вас не совсем правильный вывод о том, что значение хэш-функции "меняется со
> временем": на самом деле хеширование выполняется с конкатенацией метки времени и
> оригинальным значением - потому и создается такое впечатление...

Чё? Я имел в виду, что если ты возмёщь одну современную хэш-таблицу в
произвольном языке программирования и начнёшь её заполнять, сначала
для хэширования будет использоваться одна хэш-функция, потом, с ростом
таблицы, возможно, она будет заменена на другую (прозрачно для пользователя,
естестенно).

Извините, но это - БРЕД!

Я допускаю, что некоторые библиотеки могут позволять выбор разных хэш-функции для реализации хэш-таблиц.
Но вот то, что в ран-тайме в течение всего периода жизни экземпяра хэш-таблицы вне зависимости от степени ее роста хэш-функция НЕ меняется - это, как бы, аксиома... Любая попытка замены хэширующей функции "на лету" приводит к эскалации коллизий и некорректности функционирования ЛЮБОГО алгоритма, работающего с этой хэш-таблицей.
MasterZiv> При необходимости часто делать выборки из больших таблиц по точному совпадению в
> полях больших размеров (например, текстовых идентификаторов), для ускорения
> поиска и уменьшения места, занимаемого индексами физической таблицы, можно
> использовать индекс по значению хэш-функции для этого конкретного поля.
> Соотвественно, в условии выборки используется уже не значение поля, а значение
> хэш-функции от кроиерия выборки по этому полю. Естественно, что не следует
> забывать про возможные коллизии при этом.

Большего идиотизма трудно придумать.
-- можно просто не использовать длинные текстовые поля в индексах.

Я правильно понимаю, что массовый фулл-скан по большой таблице вместо индекс-скана по хэш-функции с корреляцией условий - не-идиотизм?
Ну-ну...
MasterZiv-- все индексы сжимают поля ключей, они не занимают много места.

Вы неверно понимаете сжатие ключей индексов, которые могут выполнять некоторые промышленные СУБД.
Исключения из ключа индекса незначащей части не дает существеной экономии места, когда ключ заполнен "в-среднем" процентов на 90-95 для каждой записи... При длине ключа байт хотя бы на 100... С учетом "сжатия"...
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762904
Bazist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевBazist О сколько Диме открытий чудных,
готовит просвещенья век (с)

А теперь в кратце, Вы тоже считаете, что хеш таблица не упорядоченна, потому что ее порядок не соответствует некому мифическому ключу?

Давай тыкнем пальцем на хаос и скажем что он особым образом упорядочен.
Что мне с "упорядочиваний" хештаблицы если я не могу вытянуть элементы в сортированом порядке по ключу, не могу вытягивать элементы по диапазону ключей и так далее ? Что собсно могу сделать например в тех же структурах аля дерево, где элементы действительно упорядочены в алфавитном порядке. Как хештаблице удобней, так она их и "упорядочивает" тоесть это ее внутренние потребности как и в каком порядке будет разлаживать элементы. Для клиента этот черный ящик с недетрменированым порядком.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762907
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sphinx_mvПо сути UPPER, LOWER, не говоря уже о SOUNDEX, тоже могут считаться хэш-функциями,
Только очень теоретически. Они практически неприменимы в тех ситуациях, в которых мы хотим применять хэш-функции.

sphinx_mvа индексы в БД - хэш-таблицами.
Совсем нет. Примерно с тем же успехом можно сказать "full table scan можно считать доступом по индексу" - для того, чтобы это стало верным, нужно подняться на столь высокую ступень абстракции, что вообще теряется какой-либо смысл.

sphinx_mvСоответствеенно, и сама хэш-функция известна, и доступ к ее результату тоже имеется.
Пусть имеется. Я не зря писал в своих требованиях про возможность замены хэш-функции без потери работоспособности решения и стабильности результата.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762909
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivКто его банит-то ? Без него скучно будет. :-)

Не во всех местных форумах так либеральны.
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762921
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> А теперь в кратце, Вы тоже считаете, что хеш таблица не упорядоченна, потому что
> ее порядок не соответствует некому мифическому ключу?

По какому критерию она упорядочена ?
Расскажи, а мы рассмотрим.

Проблема -то изначально была в том, что Дмитрий не верил, что задачу (удаление
дубликатов) можно решить без сортировки. Ему сказали -- есть хэш-таблицы.
Он заявил, что хэш-таблица сортирует (упорядочивает) записи (видимо, по критерию
частичного порядка по полям выявления дуплицирования записей, т.е. ключа).

Т.е. как бы домысливая (Дмитрий вроде бы это не заявлял), мы все решили,
что он предполагает, что хэш-таблица сортирует внутри хранимые записи по
значению используемого ключа, что неверно.

Если ты тоже предполагаешь, что хэш-таблица что-то сортирует, то расскажи,
что это.

Почему вопрос принципиален -- самая быстрая сортировка это
O( N log N )

в то время как производительность хэш-таблицы
O( 1 )

Если бы хэш-таблица что-то сортировала бы, она не могла бы добиться
производительности в O( 1 ).

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762924
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЧто происходит?
BazistДа, так и есть.
Это мне одному напоминает анекдот про блондинку?..

BazistЧто мне с "упорядочиваний" хештаблицы если я не могу вытянуть элементы в сортированом
порядке по ключу, не могу вытягивать элементы по диапазону ключей и так далее ?

Но вы можете за один проход вытянуть список неповторяющихся элементов. Этого достаточно
для работы предикатов DISTINCT и GROUP BY.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762927
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 04/20/2012 02:21 PM, Dimitry Sibiryakov wrote:

> MasterZiv
> Перехэширование.

> Подробнее, пожалуйста. Что Вы зовёте "перехешированием"?

Вот смотри, ты вроде бы "поугас". Мы даём тебе "перехэширование".
Ты снова начинаешь постить всякую фигню, и все пруца.
Вот, это и есть "эффект перехэширования".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762932
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Чем больше Вы пишете, тем больше я сомневаюсь, что даже в этом узком контексте
> Вы понимаете суть хэш-функций и хэш-таблиц...

Уж могу тебя заверить. В хэш-таблицах я профессионал.

> Извините, но это - БРЕД!

Всё, иди читай чтонибудь уже.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762936
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Не во всех местных форумах так либеральны.

Я замолвлю словечко, если что. :-)
(серьёзно): Да нет, за что ж его банить, он ничего не нарушал.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762938
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BazistДавай тыкнем пальцем на хаос и скажем что он особым образом упорядочен.
Это не возможно. Если он упорядочен, то он не хаос по определению.

BazistЧто мне с "упорядочиваний" хештаблицы если я не могу вытянуть элементы в сортированом порядке по ключу, не могу вытягивать элементы по диапазону ключей и так далее?
Потому что это упорядочивание нужно для другого - бустрого поиска по равенству значения hash, или отсева кандидатов на явное неравенство.
А то, что другие свойства упорядоченности списка hash лишены практического значения, на суть того упорядочено оно или нет никак не влияют.

Собственно, правильного ответа, почему создание хеш таблицы не является сортировкой я лично дал здесь - 12440698 .
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762940
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Арсеньев,

точнее почему может не являться
...
Рейтинг: 0 / 0
СУБД для временного хранения данных из бинарного файла (под Delphi).
    #37762941
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivсамая быстрая сортировка это
O( N log N )
Что я там говорил про ограничение понятия "сортировка" обменными алгоритмами?.. Правильно,
что кому-то пора перечитать Кнута.

MasterZivВот смотри, ты вроде бы "поугас". Мы даём тебе "перехэширование".
Ты снова начинаешь постить всякую фигню, и все пруца.
Вот, это и есть "эффект перехэширования".
Т.е. создаётся новый массив и все 100500 записей из старого массива переносятся в новый.
Пользователь может пока покурить.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 311, страница 7 из 13
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / СУБД для временного хранения данных из бинарного файла (под Delphi).
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]