powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / В каких СУБД есть такая штука...
25 сообщений из 73, страница 2 из 3
В каких СУБД есть такая штука...
    #38824282
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfО каком типе индекса идет речь? Назовите алгоритм или название базы+название типа индекса.

MS SQL Server. B-tree.
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38824283
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pkarklinscf,

Восстановите мне, пожалуйста, исходные данные индекса, полученного перемножением двух интовых полей, в значение ключа которого 12.
Не, они видите что говорит, что помимо того что индекс будет построен, так ещё в листьях индекса будет храниться это число 12, это помимо двух интовых полей :)
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38824284
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinscfО каком типе индекса идет речь? Назовите алгоритм или название базы+название типа индекса.

MS SQL Server. B-tree.

Отлично, а при чем тут перемножение целых чисел?
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38824291
pkarklin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfОтлично, а при чем тут перемножение целых чисел?

Приведите другой пример, такого индекса:

scfТ.е. такие колонки можно использовать в WHERE (по ним есть индекс) но нельзя использовать в SELECT (в них нет данных).
Смысл том, чтобы хранить в базе только индекс для ускорения работы и уменьшения размера базы.
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38824293
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovFunction Based Index - в любой приличной СУБД.В MySQL нету.
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38824295
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfПервая строчка из цитаты относится к B-tree
Вторая строчка из цитаты относится к case-insensitive индексам
А Вы, стало быть, утверждаете, что B-tree индексы не могут быть регистронечуствительными.
Ню-ню...

PS: А вообще, я сильно сомневаюсь, что какая нибудь СУБД позволит создать таблицу, которая
гарантированно не переживёт export-import, которую нельзя задействовать в репликации или
standby.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38824402
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pkarklinscfО каком типе индекса идет речь? Назовите алгоритм или название базы+название типа индекса.

MS SQL Server. B-tree.

B+ Tree
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38824440
кхм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
scfкак колонки, которые не хранят вставленные данные, но по которым можно строить индексы.

<>кхм, стесняюсь спьясить,
мальчик , ты дуяк ?

в общем ты хочешь index (F(x))
но так, чтобы от хранимого в индексе F(x) было затруднительно на стороне сервера, не зная способа F делать x= F -1 (Y), но при этом уметь таки поиск по x. (т.е. знать таки F) --> противоречие

которое частично снимается "алгоритимически сложным" кодированием/декодированием. но кодировать все равно должно быть возможно на стороне делающей where F(x). А вот декодиявать должно быть алгоитмически сьёжно
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38824521
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scf В каких СУБД есть такая штука как колонки, которые не хранят вставленные данные, но по которым можно строить индексы.

Т.е. такие колонки можно использовать в WHERE (по ним есть индекс) но нельзя использовать в SELECT (в них нет данных).
Смысл том, чтобы хранить в базе только индекс для ускорения работы и уменьшения размера базы. Это может быть полезно, например, для построения индексов для данных, хранящихся в виде BLOB-ов.СУБД Caché (разделы "Скрытие чувствительных данных")
Я такую штуку использовал именно для индексации blob-ов (фото), для быстрого поиска похожих лиц.
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38824545
host.13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть речь все-таки не про индексы без данных, а про индексы, построенные по существующим где-либо (не обязательно в данной БД) данным? Если так, то эти индексы - не индексы, а данные, по которым при желании можно еще построить индексы.
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38827628
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfкак колонки, которые не хранят вставленные данные, но по которым можно строить индексы.

Т.е. такие колонки можно использовать в WHERE (по ним есть индекс) но нельзя использовать в SELECT (в них нет данных).
Смысл том, чтобы хранить в базе только индекс для ускорения работы и уменьшения размера базы. Это может быть полезно, например, для построения индексов для данных, хранящихся в виде BLOB-ов.

в Virtuoso реализованы индексы без ссылки на исходную запись . нужно это тупо для экономии места, т.е.такой индекс может использоваться только как покрывающий (запрос).

но тем не менее в Select list его можно использовать, как и в Where.

это вообще странное требование автора вопроса.

в FBI и индексах на выражения в оракл такое соблюдается, но автору все равно вроде не нравится.
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38828866
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кхмв общем ты хочешь index (F(x))
но так, чтобы от хранимого в индексе F(x) было затруднительно на стороне сервера, не зная способа F делать x= F -1 (Y), но при этом уметь таки поиск по x.

Нет - человек хочет поиск по F(X). Другими словами ему нужен виртуальные столбцы {x} в которые он будет записывать значения, а в хранится будет только F({x}).

Собственно в том же Oracle делается при помощи View поверх IOT с полем F и instead of триггерах on insert,update, в которых :new.F=F({x}).
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38828895
кхм
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей Арсеньевкхмв общем ты хочешь index (F(x))
но так, чтобы от хранимого в индексе F(x) было затруднительно на стороне сервера, не зная способа F делать x= F -1 (Y), но при этом уметь таки поиск по x.

Нет - человек хочет поиск по F(X). Другими словами ему нужен виртуальные столбцы {x} в которые он будет записывать значения, а в хранится будет только F({x}).

Собственно в том же Oracle делается при помощи View поверх IOT с полем F и instead of триггерах on insert,update, в которых :new.F=F({x}).тот же хрен, вид сбоку

он хочет по табле с индексом F(x) искать , имея на руках x , а не F(x).
т.е. он на руках должен иметь и саму производящую ф-ю F() [но хочет иметь проблемы с восстановлением x из F]. об чем и речь.

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

а что там делает ара-кал, и куда он пошёл -- это дело десятое. "вопрос реализации" , с чем у ларри большие успехи. в некотором смысле.
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829081
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кхмтот же хрен, вид сбоку
Функцию то он знает. Поэтому можно сделать where F_field=F(X) .

В, принципе, в СУБД, в которых есть табличные функции, можно сделать выборку из табличной функции, которая будет принимать параметры и строить таблицу с результатом, спрятав вышеуказанное условие, только с теми полями, которые храняться.

Что-то типа select * from table(giv_me_table({x})) даже в where не нужно ничего указывать.

Ну или использовать СУБД с переопределяемыми на лету запросами (которые вместо одного подставляют другой).

Только вот зачем?
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829620
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, никаких функций.
Идея этого вопроса в том, что для поиска по b-tree индексу чтение собственно строки данных не требуется, даже если нужная колонка не перенесена в индекс.

Контр-довод, который я смог найти: такая штука будет плохо работать с селектом по двум полям. Это обычно резолвится в выборку по первому индексу + table scan, а в моем случае получаем безальтернативно выборку по каждому индексу и их hash join, что намного затратнее.
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829635
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
scfНет, никаких функций.
Идея этого вопроса в том, что для поиска по b-tree индексу чтение собственно строки данных не требуется, даже если нужная колонка не перенесена в индекс.

Контр-довод, который я смог найти: такая штука будет плохо работать с селектом по двум полям. Это обычно резолвится в выборку по первому индексу + table scan, а в моем случае получаем безальтернативно выборку по каждому индексу и их hash join, что намного затратнее.
Ответьте четко на 3 вопроса:
1. Что такое Index Only Scan?
2. Что содержится в B-tree индексе, перечислите?
2.a) b-tree (сам индекс)
2.b) помимо самого индекса, в листьях содержаться ещё и поля по которым он построен
2.c) в листьях rowid (ссылка на строку в таблице)
3. Что содержится в Index Organized Table?
3.a) b-tree (сам индекс)
3.b) помимо самого индекса, в листьях содержаться ещё и поля по которым он построен
3.c) в листьях остальные столбцы, исключая индекс

Если в 2 нет 2.b), то в 3 так же нет 3.b), т.к. формально эти структуры идентичны, т.е. IOT - то что вы ищете (а возможность получать поля в select просто приятный бонус, который вам не нужен).
Если в 2 нет 2.b), то Index Only Scan - это получение в select полей содержащихся исключительно в самом B-tree индексе, а не в его листьях?
Есть ли 2.b) в 2?
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829645
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вася Уткин,

1. как подсказал гугль:
https://wiki.postgresql.org/wiki/Index-only_scans
"Btree indexes contain what are technically redundant copies of the column data that is indexed."

Я так думаю, что 2.c
Судя по докам оракла, 3.b

Насчет того, что IOT - это то, что мне нужно.
b-tree - это дерево, проходом по которому из вершины в лист можно "собрать" значение, по которому этот индекс был построен. Судя по вышеприведенной доке постгреса, они именно это и делают.
оракловый IOT меня смущает тем, что в документации *явно* написано, что в индекс включают данные колонки, что избыточно (см. цитату в кавычках выше)
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829646
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вася Уткин,

Вообще Index Only Scan - это, похоже, именно то, что я ищу. Разве что без опции "не хранить эти данные в таблице".
Есть ли аналогичная штука в оракле?
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829650
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://www.dba-oracle.com/concepts/index_only_tables.htm
Вот интересная ссылка в тему...
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829655
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
scfВася Уткин,

1. как подсказал гугль:
https://wiki.postgresql.org/wiki/Index-only_scans
"Btree indexes contain what are technically redundant copies of the column data that is indexed."

Я так думаю, что 2.c
Судя по докам оракла, 3.b

Насчет того, что IOT - это то, что мне нужно.
b-tree - это дерево, проходом по которому из вершины в лист можно "собрать" значение, по которому этот индекс был построен. Судя по вышеприведенной доке постгреса, они именно это и делают.
оракловый IOT меня смущает тем, что в документации *явно* написано, что в индекс включают данные колонки, что избыточно (см. цитату в кавычках выше)
Как вы перевели эту цитату?

В оракловой документации "*явно* написано", что содержится явно копия поля , или что содержится само поле?
Если "содержится само поле", то это и означает, что "дерево, проходом по которому из вершины в лист можно "собрать" значение, по которому этот индекс был построен."
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829659
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfb-tree - это дерево, проходом по которому из вершины в лист можно "собрать"
значение, по которому этот индекс был построен.
В общем случае - нельзя. Потому что индекс строится не по значению, а по ключу.
Преобразование значения в ключ может быть, а может и не быть обратимым. Так что из индекса
можно получить ключ, но не значение.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829661
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
scfВася Уткин,

Вообще Index Only Scan - это, похоже, именно то, что я ищу. Разве что без опции "не хранить эти данные в таблице".
Есть ли аналогичная штука в оракле?
Да, долго IOS (в виш листах лет 5 наверно висел) и no-logged tables рожали в PostgreSQL, но если бы ещё запилили и Intra Query Parallelism - стало возможным использовать PostgreSQL в ETL/DWH :)
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829664
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakovscfb-tree - это дерево, проходом по которому из вершины в лист можно "собрать"
значение, по которому этот индекс был построен.
В общем случае - нельзя. Потому что индекс строится не по значению, а по ключу.
Преобразование значения в ключ может быть, а может и не быть обратимым. Так что из индекса
можно получить ключ , но не значение .

А значение ключа можно получить?
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829669
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так понял, что под "значением" подразумевается значение колонки, а под "ключом" - преобразованное значение, по которому строится индекс и которое собственно в этом индексе ищется. Например, ключ = uppercase(значение) для case-insensitive индексов.

Но дело-то в том, что читать "значение" мне нафиг не нужно) Мне бы только rowid узнать, чтобы мирно прочитать мой блоб из тейблспейса.

Насчет IOT - я так думаю, что данные все-таки дублируются, т.е. хранятся и в индексе, и в таблице. Иначе full scan таблицы потребует чтения из двух разных мест.
...
Рейтинг: 0 / 0
В каких СУБД есть такая штука...
    #38829674
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
scfЯ так понял, что под "значением" подразумевается значение колонки, а под "ключом" - преобразованное значение, по которому строится индекс и которое собственно в этом индексе ищется. Например, ключ = uppercase(значение) для case-insensitive индексов.

Но дело-то в том, что читать "значение" мне нафиг не нужно) Мне бы только rowid узнать, чтобы мирно прочитать мой блоб из тейблспейса.

Насчет IOT - я так думаю, что данные все-таки дублируются, т.е. хранятся и в индексе, и в таблице. Иначе full scan таблицы потребует чтения из двух разных мест .
IOT - это B-tree индекс в листьях которого нет rowid, но есть все поля за исключением содержащихся в индекс, т.е. IOT это одна структура в которой все есть, какие ещё два разных места?
...
Рейтинг: 0 / 0
25 сообщений из 73, страница 2 из 3
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / В каких СУБД есть такая штука...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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