|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
как колонки, которые не хранят вставленные данные, но по которым можно строить индексы. Т.е. такие колонки можно использовать в WHERE (по ним есть индекс) но нельзя использовать в SELECT (в них нет данных). Смысл том, чтобы хранить в базе только индекс для ускорения работы и уменьшения размера базы. Это может быть полезно, например, для построения индексов для данных, хранящихся в виде BLOB-ов. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 21:20 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Function Based Index - в любой приличной СУБД. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 21:37 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfТ.е. такие колонки можно использовать в WHERE ( по ним есть индекс ) но нельзя использовать в SELECT (в них нет данных ). Стесняюсь спросить, а что тогда есть в индексе? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 21:43 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
pkarklinа что тогда есть в индексе? Да как обычно это водится у индексов: ключ и ссылка на запись. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 22:08 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovpkarklinа что тогда есть в индексе? Да как обычно это водится у индексов: ключ и ссылка на запись. Ну в индексе обычно хранится значение самого ключа, за исключением Firebird. Или автор ищет Index organized table / Clustered Index? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 22:11 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovpkarklinа что тогда есть в индексе? Да как обычно это водится у индексов: ключ и ссылка на запись. Т.е. значение ключа. Соответственно, мы можем его использовать в SELECT. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 22:17 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Дмитрий все правильно сказал. В оракл ещё есть вычислимые столбцыhttp://oracle-base.com/articles/11g/virtual-columns-11gr1.php ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 22:36 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
pkarklinТ.е. значение ключа. Которое не обязано совпадать с исходным значением из записи. Как, по-твоему, делается регистронечувствительный поиск по индексу?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 22:39 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovFunction Based Index - в любой приличной СУБД. Если я не ошибаюсь, для него нужно наличие данных, по которым собственно вычисляется индекс. А хотелось бы, чтобы в базе хранился только индекс, достаточный для поиска записи по полю, но не само значение этого поля. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 22:53 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovКоторое не обязано совпадать с исходным значением из записи. Безусловно! Только это утверждение вступает в противоречие с: scf Смысл том, чтобы хранить в базе только индекс для ускорения работы и уменьшения размера базы ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 22:55 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfА хотелось бы, чтобы в базе хранился только индекс, достаточный для поиска записи по полю, но не само значение этого поля. Спрошу еще раз. Что для реализации этого функционала должно быть в индексе? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 22:57 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
pkarklin, От типа индекса зависит. Я тут немного плаваю в теории, но для B-деревьев исходное значение для каждой строки хранить не надо (хотя его можно восстановить из индекса). Если речь идет об индексе на хеш-таблице - то да, исходное значение надо хранить, чтобы разрешать коллизии. Как уже писали выше, для case-insensitive индексов индекс строится не по исходному, а по обработанному значению (например, переведенному в uppercase) и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 23:12 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scf(хотя его можно восстановить из индекса). (например, переведенному в uppercase) Ты эта... определись что ли... Переведение в upper case необратимо вообще-то... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 23:16 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfpkarklin, От типа индекса зависит. Я тут немного плаваю в теории, но для B-деревьев исходное значение для каждой строки хранить не надо (хотя его можно восстановить из индекса). Если речь идет об индексе на хеш-таблице - то да, исходное значение надо хранить, чтобы разрешать коллизии. Как уже писали выше, для case-insensitive индексов индекс строится не по исходному, а по обработанному значению (например, переведенному в uppercase) и т.п. Я угадал, ищется IOT/CI ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 23:18 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Текст на русском языке читается слева направа, сверху вниз. Первая строчка из цитаты относится к B-tree Вторая строчка из цитаты относится к case-insensitive индексам Это был такой троллинг или я правда непонятно написал? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 23:18 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Вася Уткин, Если речь об этом: https://docs.oracle.com/cd/B28359_01/server.111/b28310/tables012.htm#ADMIN01506 То это не совсем то. IOT в оракле - это запихивание данных из строки непосредственно в индекс, чтобы при селекте не читать из двух разных мест на диске. А я хочу, чтобы исходные данные, по которым был построен индекс, не хранились вообще. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 23:21 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfно для B-деревьев исходное значение для каждой строки хранить не надо (хотя его можно восстановить из индекса). Я, так думаю, это минимум Нобелевка! ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 23:24 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfВася Уткин, Если речь об этом: https://docs.oracle.com/cd/B28359_01/server.111/b28310/tables012.htm#ADMIN01506 То это не совсем то. IOT в оракле - это запихивание данных из строки непосредственно в индекс , чтобы при селекте не читать из двух разных мест на диске. А я хочу, чтобы исходные данные, по которым был построен индекс, не хранились вообще. Можно поподробней про " запихивание данных из строки непосредственно в индекс"? С чего вы взяли, что эти данные хранятся в индексе, а не "можно восстановить из индекса"? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 23:26 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
pkarklin, Если вы думаете, так поделитесь своими мыслями с народом, зачем их в себе-то держать) Почему нельзя восстановить исходные значения из B-tree, которое является префиксным деревом? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 23:26 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Вася Уткин, Первый абзац по ссылке: Unlike an ordinary (heap-organized) table whose data is stored as an unordered collection (heap), data for an index-organized table is stored in a B-tree index structure in a primary key sorted manner. Each leaf block in the index structure stores both the key and nonkey columns. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 23:27 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfА я хочу, чтобы исходные данные, по которым был построен индекс, не хранились вообще. Опять стесняюсь спросить - модифицирование данных мы где будем производить? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 23:27 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfpkarklin, Если вы думаете, так поделитесь своими мыслями с народом, зачем их в себе-то держать) Почему нельзя восстановить исходные значения из B-tree, которое является префиксным деревом? В случае индекса по Код: sql 1.
? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 23:30 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Короче :-) Чтобы направить дискуссию на правильный путь, попробую высказать следующее утверждение: b-tree индекс позволяет найти строку (WHERE table.column = value) БЕЗ чтения самой строки. Правда ли это? И если это правда, то возможно ли вообще не хранить значение колонки, по которой построен b-tree индекс? Разумеется, при условии, что мы не селектим эту колонку. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 23:32 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scf, Восстановите мне, пожалуйста, исходные данные индекса, полученного перемножением двух интовых полей, в значение ключа которого 12. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 23:33 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
pkarklinscf, Восстановите мне, пожалуйста, исходные данные индекса, полученного перемножением двух интовых полей, в значение ключа которого 12. О каком типе индекса идет речь? Назовите алгоритм или название базы+название типа индекса. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 23:34 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfО каком типе индекса идет речь? Назовите алгоритм или название базы+название типа индекса. MS SQL Server. B-tree. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 23:35 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
pkarklinscf, Восстановите мне, пожалуйста, исходные данные индекса, полученного перемножением двух интовых полей, в значение ключа которого 12. Не, они видите что говорит, что помимо того что индекс будет построен, так ещё в листьях индекса будет храниться это число 12, это помимо двух интовых полей :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 23:35 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
pkarklinscfО каком типе индекса идет речь? Назовите алгоритм или название базы+название типа индекса. MS SQL Server. B-tree. Отлично, а при чем тут перемножение целых чисел? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 23:38 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfОтлично, а при чем тут перемножение целых чисел? Приведите другой пример, такого индекса: scfТ.е. такие колонки можно использовать в WHERE (по ним есть индекс) но нельзя использовать в SELECT (в них нет данных). Смысл том, чтобы хранить в базе только индекс для ускорения работы и уменьшения размера базы. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 23:47 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovFunction Based Index - в любой приличной СУБД.В MySQL нету. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 23:48 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfПервая строчка из цитаты относится к B-tree Вторая строчка из цитаты относится к case-insensitive индексам А Вы, стало быть, утверждаете, что B-tree индексы не могут быть регистронечуствительными. Ню-ню... PS: А вообще, я сильно сомневаюсь, что какая нибудь СУБД позволит создать таблицу, которая гарантированно не переживёт export-import, которую нельзя задействовать в репликации или standby. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 23:51 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
pkarklinscfО каком типе индекса идет речь? Назовите алгоритм или название базы+название типа индекса. MS SQL Server. B-tree. B+ Tree ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2014, 05:52 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfкак колонки, которые не хранят вставленные данные, но по которым можно строить индексы. <>кхм, стесняюсь спьясить, мальчик , ты дуяк ? в общем ты хочешь index (F(x)) но так, чтобы от хранимого в индексе F(x) было затруднительно на стороне сервера, не зная способа F делать x= F -1 (Y), но при этом уметь таки поиск по x. (т.е. знать таки F) --> противоречие которое частично снимается "алгоритимически сложным" кодированием/декодированием. но кодировать все равно должно быть возможно на стороне делающей where F(x). А вот декодиявать должно быть алгоитмически сьёжно ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2014, 08:25 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scf В каких СУБД есть такая штука как колонки, которые не хранят вставленные данные, но по которым можно строить индексы. Т.е. такие колонки можно использовать в WHERE (по ним есть индекс) но нельзя использовать в SELECT (в них нет данных). Смысл том, чтобы хранить в базе только индекс для ускорения работы и уменьшения размера базы. Это может быть полезно, например, для построения индексов для данных, хранящихся в виде BLOB-ов.СУБД Caché (разделы "Скрытие чувствительных данных") Я такую штуку использовал именно для индексации blob-ов (фото), для быстрого поиска похожих лиц. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2014, 10:03 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
То есть речь все-таки не про индексы без данных, а про индексы, построенные по существующим где-либо (не обязательно в данной БД) данным? Если так, то эти индексы - не индексы, а данные, по которым при желании можно еще построить индексы. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2014, 10:18 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfкак колонки, которые не хранят вставленные данные, но по которым можно строить индексы. Т.е. такие колонки можно использовать в WHERE (по ним есть индекс) но нельзя использовать в SELECT (в них нет данных). Смысл том, чтобы хранить в базе только индекс для ускорения работы и уменьшения размера базы. Это может быть полезно, например, для построения индексов для данных, хранящихся в виде BLOB-ов. в Virtuoso реализованы индексы без ссылки на исходную запись . нужно это тупо для экономии места, т.е.такой индекс может использоваться только как покрывающий (запрос). но тем не менее в Select list его можно использовать, как и в Where. это вообще странное требование автора вопроса. в FBI и индексах на выражения в оракл такое соблюдается, но автору все равно вроде не нравится. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2014, 07:31 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
кхмв общем ты хочешь 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}). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 13:06 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Сергей Арсеньевкхмв общем ты хочешь 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" ну, и т.п. а что там делает ара-кал, и куда он пошёл -- это дело десятое. "вопрос реализации" , с чем у ларри большие успехи. в некотором смысле. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 13:21 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
кхмтот же хрен, вид сбоку Функцию то он знает. Поэтому можно сделать where F_field=F(X) . В, принципе, в СУБД, в которых есть табличные функции, можно сделать выборку из табличной функции, которая будет принимать параметры и строить таблицу с результатом, спрятав вышеуказанное условие, только с теми полями, которые храняться. Что-то типа select * from table(giv_me_table({x})) даже в where не нужно ничего указывать. Ну или использовать СУБД с переопределяемыми на лету запросами (которые вместо одного подставляют другой). Только вот зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 15:16 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Нет, никаких функций. Идея этого вопроса в том, что для поиска по b-tree индексу чтение собственно строки данных не требуется, даже если нужная колонка не перенесена в индекс. Контр-довод, который я смог найти: такая штука будет плохо работать с селектом по двум полям. Это обычно резолвится в выборку по первому индексу + table scan, а в моем случае получаем безальтернативно выборку по каждому индексу и их hash join, что намного затратнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 22:42 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
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? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 23:01 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Вася Уткин, 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 меня смущает тем, что в документации *явно* написано, что в индекс включают данные колонки, что избыточно (см. цитату в кавычках выше) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 23:20 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Вася Уткин, Вообще Index Only Scan - это, похоже, именно то, что я ищу. Разве что без опции "не хранить эти данные в таблице". Есть ли аналогичная штука в оракле? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 23:22 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
http://www.dba-oracle.com/concepts/index_only_tables.htm Вот интересная ссылка в тему... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 23:26 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
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 меня смущает тем, что в документации *явно* написано, что в индекс включают данные колонки, что избыточно (см. цитату в кавычках выше) Как вы перевели эту цитату? В оракловой документации "*явно* написано", что содержится явно копия поля , или что содержится само поле? Если "содержится само поле", то это и означает, что "дерево, проходом по которому из вершины в лист можно "собрать" значение, по которому этот индекс был построен." ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 23:30 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfb-tree - это дерево, проходом по которому из вершины в лист можно "собрать" значение, по которому этот индекс был построен. В общем случае - нельзя. Потому что индекс строится не по значению, а по ключу. Преобразование значения в ключ может быть, а может и не быть обратимым. Так что из индекса можно получить ключ, но не значение. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 23:33 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfВася Уткин, Вообще Index Only Scan - это, похоже, именно то, что я ищу. Разве что без опции "не хранить эти данные в таблице". Есть ли аналогичная штука в оракле? Да, долго IOS (в виш листах лет 5 наверно висел) и no-logged tables рожали в PostgreSQL, но если бы ещё запилили и Intra Query Parallelism - стало возможным использовать PostgreSQL в ETL/DWH :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 23:34 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakovscfb-tree - это дерево, проходом по которому из вершины в лист можно "собрать" значение, по которому этот индекс был построен. В общем случае - нельзя. Потому что индекс строится не по значению, а по ключу. Преобразование значения в ключ может быть, а может и не быть обратимым. Так что из индекса можно получить ключ , но не значение . А значение ключа можно получить? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 23:35 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Я так понял, что под "значением" подразумевается значение колонки, а под "ключом" - преобразованное значение, по которому строится индекс и которое собственно в этом индексе ищется. Например, ключ = uppercase(значение) для case-insensitive индексов. Но дело-то в том, что читать "значение" мне нафиг не нужно) Мне бы только rowid узнать, чтобы мирно прочитать мой блоб из тейблспейса. Насчет IOT - я так думаю, что данные все-таки дублируются, т.е. хранятся и в индексе, и в таблице. Иначе full scan таблицы потребует чтения из двух разных мест. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 23:41 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfЯ так понял, что под "значением" подразумевается значение колонки, а под "ключом" - преобразованное значение, по которому строится индекс и которое собственно в этом индексе ищется. Например, ключ = uppercase(значение) для case-insensitive индексов. Но дело-то в том, что читать "значение" мне нафиг не нужно) Мне бы только rowid узнать, чтобы мирно прочитать мой блоб из тейблспейса. Насчет IOT - я так думаю, что данные все-таки дублируются, т.е. хранятся и в индексе, и в таблице. Иначе full scan таблицы потребует чтения из двух разных мест . IOT - это B-tree индекс в листьях которого нет rowid, но есть все поля за исключением содержащихся в индекс, т.е. IOT это одна структура в которой все есть, какие ещё два разных места? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 23:46 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Ещё раз ответьте четко на 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 и 3 можно выбрать от 0 до 3 пунктов. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 23:48 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfНасчет IOT - я так думаю, что данные все-таки дублируются, т.е. хранятся и в индексе, и в таблице. Иначе full scan таблицы потребует чтения из двух разных мест. IOT строиться не по таблице, а вместо неё ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 23:49 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Вася Уткин, а, я думал, что в IOT поля переносятся выборочно. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 23:52 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfдело-то в том, что читать "значение" мне нафиг не нужно) Мне бы только rowid узнать, чтобы мирно прочитать мой блоб из тейблспейса. А, так вот что тебе нужно... Радуйся, оно существует! Причём во множестве вариантов. Например, "NTFS" и "ext2". Всё как ты описываешь: индекс в котором хранятся исключительно rowid по которым и достаётся BLOB. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 23:54 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Прежде чем делать такие заявления, желательно понимать отличие требований для ФС к требованиям для СУБД. Вы должны это знать, так что ваш комментарий меня удивляет. Банальнейший пример - в таблице может быть больше одно ключа (не путать с первичным ключом) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 23:58 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfВася Уткин, а, я думал, что в IOT поля переносятся выборочно. Это называется Create Indexes with Included Columns и есть только в MS SQL В Oracle того же эффекта можно достичь построив Materialized View. Да собственно и в MS SQL тоже можно построив Indexed View (Но только в MS SQL Enterprise-версии оптимизатор запросов будет автоматически использовать indexed view в запросах в которых он не указан, но с его помощью их можно ускорить. А Indexes with Included Column будет использовать автоматически в любой версии). ... |
|||
:
Нравится:
Не нравится:
|
|||
09.12.2014, 23:58 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Коллеги, ну я совершенно вас не понимаю :-) Посты, достойные школьника, перемежаются неожиданно глубокими знаниями по мелким деталям. Это типа такой троллинг или я правда так хреново излагаю мысли? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 00:01 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Короче) Есть таблица из 4 полей: X VARCHAR2 Y VARCHAR2 Z VARCHAR2 blob BLOB Мы заранее знаем, что селектить по ней будем только блоб, а во WHERE могут упоминаться поля X, Y и Z. Как будет выглядеть наиболее эффективная реализация? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 00:04 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfили я правда так хреново излагаю мысли? :-) Ага, хреново. Ты сказал "хочу по значению достать содержимое блоба". По-моему это абсолютно конкретное требование. А потом "вдруг" всплывает "несколько ключей". Ну так опять же радуйся: и в NTFS и в ext2 существуют штуки, обычно именуемые "links". На один и тот же блоб могут указывать несколько ключей. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 00:13 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfКак будет выглядеть наиболее эффективная реализация? В зависимости от поисковых запросов или файлы в каталогах трёх уровней вложенности (для AND) или три каталога с линками (для OR). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 00:20 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Давайте все-таки без клоунады... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 00:24 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfДавайте все-таки без клоунады... Я серьёзен как дохлый лев. Какому из твоих требований файловая система не удовлетворяет? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 01:40 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, - ACID - администрирование - быстродействие - поддержка разных типов ключей - поддержка сложных запросов (да хоть X=1 and Z=5) - поддержка джойнов Если все плюшки полноценный СУБД не нужны - то есть 1001 nosql СУБД, работающих быстрее. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 08:27 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfКак будет выглядеть наиболее эффективная реализация? Эффективная с какой точки зрения? с т.з. производительности? или с т.з. хранения данных? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 09:39 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scf- ACID Что не так с ACID? Создание линка и переименование файла атомарны, сами по себе линки консистентны, durability тоже на месте. scf- администрирование Что не так с администрированием? Бэкап-рестор проблем не вызывают. scf- быстродействие Превосходит все известные СУБД кроме in-memory. scf- поддержка разных типов ключей Строковых ключей недостаточно? Для чего? scf- поддержка сложных запросов (да хоть X=1 and Z=5) Зачем они в системе хранения блобов? scf- поддержка джойнов Зачем они в системе хранения блобов? Твои гипотетические "индексы без данных" их тоже не поддерживают, кстати. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 12:27 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfКороче) Есть таблица из 4 полей: X VARCHAR2 Y VARCHAR2 Z VARCHAR2 blob BLOB Мы заранее знаем, что селектить по ней будем только блоб, а во WHERE могут упоминаться поля X, Y и Z. Как будет выглядеть наиболее эффективная реализация? Не, с вас уже и так бутылка ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 12:55 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Вася УткинЭто называется Create Indexes with Included Columns и есть только в MS SQL Не только, есть еще и в DB2. И есть подозрение, что в ней они появились раньше ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 13:33 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
FavnВася УткинЭто называется Create Indexes with Included Columns и есть только в MS SQL Не только, есть еще и в DB2. И есть подозрение, что в ней они появились раньше ;) Ок, с автора вторую бутылку вам ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 13:44 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scfКороче)
... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2014, 14:26 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
servitТакого рода инфу ради экономии места и скорости выполнения запросов лучше хранить только в индексах и не вычислять каждый раз. а как индексы перестраиваться будут? нормально? и да, апдейт этих полей возможен? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2014, 11:55 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
Ivan Durakа как индексы перестраиваться будут? нормально? Да, без проблемClass demo.test Extends %Persistent { Index idxX On X; Index idxY On Y; Property X As %Integer [ InitialExpression = 12 ]; Property Y As %Integer [ Calculated, SqlComputeCode = {set {*}={X}+1}, SqlComputed, SqlComputeOnChange = X ]; ClassMethod Fill() { &sql(truncate table demo.test) &sql(insert into demo.test default values) &sql(insert into demo.test(X) select 89 union select 34) zwrite ^demo.testD,^demo.testI write ! &sql(update demo.test set X=55 where %ID=2) zwrite ^demo.testD,^demo.testI } } Результат: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
select * from demo.test IDXY112132555633435 Но апдейт можно сделать полям, от которых они зависят, тогда и эти поменяют свои значения (перевычислятся). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2014, 12:43 |
|
В каких СУБД есть такая штука...
|
|||
---|---|---|---|
#18+
scf, В Oracle есть https://docs.oracle.com/cd/E11882_01/appdev.112/e41502/adfns_indexes.htm#ADFNS258 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2014, 21:41 |
|
|
start [/forum/topic.php?all=1&fid=35&tid=1552350]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
89ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 188ms |
0 / 0 |