@dba_ru

Страница 28 из 718
Square
10.08.2016
06:56:18
Ну если мы про индекс говорим

Al
10.08.2016
06:56:52
И по индексу смогу делать выборку нужных веток

Square
10.08.2016
06:57:34
Google
Square
10.08.2016
06:57:41
Но вроде годно

Al
10.08.2016
06:58:21
Я пока не могу представит
Тоесть если узел например АААВС то все его ветки будут АААВС*

Дешево и сердито

lost
10.08.2016
07:29:14
а можно, например в узле хранить предка и потомка отдельно

Pavel
10.08.2016
08:24:49
Используйте для хранения дерева materialized path

lost
10.08.2016
08:32:55
типа как структура фс в линуксе? на подобии /usr/bin/foo

Pavel
10.08.2016
08:37:39
Ну как пример да

https://habrahabr.ru/post/46659/ хорошая статья об иерархических структурах в бд

Al
10.08.2016
08:45:38
Спасибо. Почитаю

lost
10.08.2016
08:49:03
если дерево будет очень большое, то индексы могут оказаться дорогими, или неэффективными по этому path

Pavel
10.08.2016
08:49:53
Зависит от операций

которые вы планируете делать

Google
Pavel
10.08.2016
08:50:30
к примеру Nested Set будет иметь хорошие индексы но сложен к изменениям

lost
10.08.2016
08:51:26
там скорее даже дело в формате хранения

просто с ростом дерева будет расти и путь, что логично, а строить индекс по всему пути будет немного неосмотрительно, скорее всего нужно будет брать какой-то префикс строки и тут придется выбирать между эффективностью и объемом

а потом эта хрень перестанет влезать в оперативу и будет грустно :)

Al
10.08.2016
09:06:36
к примеру Nested Set будет иметь хорошие индексы но сложен к изменениям
Изменений не будет. Будет только рост и может частичное копирование

а потом эта хрень перестанет влезать в оперативу и будет грустно :)
Попытался представить себе такое дерево и не смог.

Вся википедия влазит в 10 гигов

lost
10.08.2016
09:14:33
при неоптимальном выборе хранения данных можно и википедию обогнать :) видимо все-таки nested set больше подходит в вашем случае нежели materialized path

Pavel
10.08.2016
09:25:11
Nested set болезнено относится к вставкам, требует перестроения всего узла

Кротобедонтий
11.08.2016
16:58:54
Зато селект хорош

Кстати, еще варик

https://m.habrahabr.ru/post/153861/

Al
11.08.2016
23:00:26
https://m.habrahabr.ru/post/153861/
Все оно будет жрать диск терабайтами если дерево хоть какое-то большое

Кротобедонтий
11.08.2016
23:02:21
Такую структуру используют когда много селектов, обновлять все дерево от корня не имеет смысла

Al
12.08.2016
00:25:55
Такую структуру используют когда много селектов, обновлять все дерево от корня не имеет смысла
Да я уже понял что нужно писать свой скрипт который будет высчитывать индекс для новой записи.

Denis
13.08.2016
03:46:55
Друзья, наша группа в Telegram по DevOps давно переросла 1000 человек. Мы долго спорили - делать или нет, так или по другому, в итоге мы решили и сделали выделенную группу по Docker. Многим стало проблематично получить ответ на свой вопрос в основной группе @devops_ru из-за потока сообщений, за которым, по-честному, становится всё сложнее уследить. В то время, как Docker становится mainstream, стандартом упаковки и поставки серверных приложений. Да! Теперь вопросы и новости на тему Docker, Docker Swarm, Docker Cloud и всей его экосистеме, без флуда и профессионально можно получить в отдельной группе. Присоединяйтесь: https://telegram.me/docker_ru

alex
15.08.2016
16:58:34
Здравствуйте! Можете подсказать по лицензированию оракл? Вопрос: если оракл хостить в виртуальной инфраструктуре VMware, то надо лицензировать все ядра кластера или все ядра всех хостов входящих в vcenter? И так же надо лицензировать все ядра всех хостов реплики?

Алексей
15.08.2016
17:28:33
все ядра всех хостов. afaik

alex
15.08.2016
17:35:06
Получается оракл ни кто не виртуализирует на вмваре?

Алексей
15.08.2016
17:36:06
виртуализирует. но это неприятно дорого

Google
Al
15.08.2016
17:47:39
Получается оракл ни кто не виртуализирует на вмваре?
Виртаулизируют не для продакшена же. А лицензировать нужно по сути продакшен только.

Dmitry
17.08.2016
06:24:59
Выгодно (финансово) только в одном случае: если у вас весь вмварешный кластер отдан под оракл. Но с технической точки зрения врят ли это разумный кейс

После выхода клауда в 12 версии, вообще смысл в этом теряется полностью.

А так только хардварная виртуализация: солярные зоны, IBM LPAR, OVM

Alexander
17.08.2016
07:32:24
http://www.oracle.com/us/corporate/contracts/processor-core-factor-table-070634.pdf http://www.oracle.com/us/corporate/pricing/partitioning-070609.pdf http://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/whitepaper/solutions/oracle/understanding_oracle_certification_support_licensing_vmware_environments-white-paper.pdf при подсчетах используйте формулу: количество цпу Х количество ядер Х кор фактор

Использование виртуализации ораклиной значительно удешевляет конструкцию, естественно)

Если кратко - нужно лицензировать все ядра и цпу в кластере, на котором живет Ваша БД. Соотвественно - чем кластер меньше, тем дешевле)

Dmitry
17.08.2016
08:36:48
Интересно, кто-то в этой группе использует Oracle VM на проде? Есть ли крупные интсталяции в РФ в качестве основной платформы виртуализации?

Alexander
17.08.2016
09:32:51
Не уверен, что таких много. Правда блокирующих факторов к использованию, вроде бы, не очень много. Как и редхатовская виртуализация, например. Она есть, работает. Но, в РФ как-то не прижилась. Лицензии люди не любят покупать, уж для *nix систем и около тем более.

Dmitry
17.08.2016
09:36:12
На Оракл тоже не любят покупать, но куда деваться. Тем более, что оракловая виртуализация лицензируется бесплатно. Там только поддержка платная. http://www.oracle.com/us/corporate/pricing/els-pricelist-070592.pdf

Combot
17.08.2016
09:49:10
combot.org/chat/-1001045152752

Alibek
17.08.2016
16:55:50
ORACLE (извращение): select c1 from (select c1 from t1 order by dbms_random.value) where rownum = 1; IBM DB (извращение): select c1, rand() as idx from t1 order by idx fetch first 1 rows only; Microsoft SQL Server (извращение): select top 1 c1 from t1 order by newid(); MySQL (сокращение): select c1 from t1 order by rand() limit 1; PostgreSQL (как надо): select c1 from t1 order by random() limit 1;

Pavel
17.08.2016
17:01:58
Не надо так, пожалуйста

Danila
18.08.2016
11:29:32
всем привет =) чуваки, набрёл на этот чатик в поисках ответа на очень простой вопрос. но лёгкое гугление и рисёрч ничего не дали. речь о MySQL. есть запрос типа SELECT * FROM a LEFT JOIN b ORDER BY b.field. на b.field есть индекс, но как MySQL пишут в своих же мануалах - при такой схеме запроса этот индекс не используется. можно ли как-то зафорсить mysql использовать его? связь one-to-one.

キリル
18.08.2016
11:43:23
@elkornacio мне кажется сомнительно можно ему навязать. и тут даже от типа rdbms не зависит. во-первых так как left join. а во-вторых потому что order by применяется уже после выборки к датасету в памяти и там индексы на таблице уже не работают

lost
18.08.2016
11:44:13
а собственно где предикат джоина?

или декартово произведение должно быть?

Danila
18.08.2016
11:45:17
я просто старался сократить запрос) left join по primary key, они одинаковые у обеих таблиц.

Google
Dmitry
18.08.2016
11:47:58
кто все эти люди и где мой конь?

キリル
18.08.2016
11:50:06
@elkornacio суть матвью - это сохраненный запрос в виде "твердой" таблицы. на нее можно построить индексы конечно. а сколько данных в этом left join и не будет ли затратнее по ресурсам всякий раз ее перестривать и индексировать. или данные меняются медленно?

Danila
18.08.2016
11:53:20
данные меняются часто( на самом деле, я в целом немного обескуражен скоростью. в основной таблице - 80к записей, в той, которую джойню - 50к. сортировка по полю второй таблицы идёт 20 секунд. убираю сортировку на том же запросе - 0.03 секунды.

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

キリル
18.08.2016
11:56:44
@elkornacio время на сортировку зависит напрямую от выбираемого объема данных в результате джойна. может ограничить побольше сразу предикатами перед самим джойном ведущей таблицы и ведомой?

Danila
18.08.2016
11:59:29
к сожалению, объём это сильно не сократит( останется 50к записей с джойном + по ним сортировка и limit. я сейчас придумал иное решение. в рамках этого запроса записи без left join меня вообще не интересуют. а раз так - я могу сделать выборку по второстепенной таблице, с let join'ом основной. и сортировка с индексом будет, и проблем никаких.

キリル
18.08.2016
12:01:36
ну а вообще http://www.mysql.ru/docs/man/ORDER_BY_optimisation.html

там ясно укаазно в каких слуаях может использоваться индекс при сортировке - если столбец, по которому сортируем, есть в выборке

Danila
18.08.2016
12:03:27
да, читал её) просто думал, что есть какие-то популярные решения этой проблемы, ситуация-то довольно стандартная, как мне кажется. поэтому и решил поопрашивать чатики)

?
18.08.2016
13:14:05
и я тут ^^

Страница 28 из 718