Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
 Re: MySql vs Postgre vs ?  [new]
Arhat109
Member

Откуда: из СССР
Сообщений: 3430
miksoft,
опечатка, но "удачная"... клаву пора мыть - половина клавиш не прожимается.
4 авг 12, 20:57    [12962899]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
Arhat109
denis2710,
ИМХО это достоинство, а не недостаток. Значит запрос будет выполняться с большой долей вероятности именно так как напишешь.
...
В общем-то да, заметил уже. Последнее время, не заморачиваюсь. Пишу сразу FORCE INDEX FOR (.нафига и какой.).

Какое-то странное понятие о достоинствах...
Полезно разобраться "че да как",а не лепить хинты имхо
6 авг 12, 10:49    [12966490]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
Arhat109
Member

Откуда: из СССР
Сообщений: 3430
denis2710, с чем предлагаете "разобраться че да как"? Просто не очень понял чего сказать хотели... вот, разбираюсь. ;)

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

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

Ну например, где-нибудь в блоке WHERE ставишь IF(условие, LEAST( @one:="two", 1 ), 2)
, а он смотрит, что внутрях функции LEAST сплошь константы получаются и редуцирует вызов функции... да ишо и молча... бяда, ой бяда.

Не, в нормальных проектах вумные оптимизаторы - зло.
6 авг 12, 19:45    [12970823]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
Arhat109
Ну например, где-нибудь в блоке WHERE ставишь IF(условие, LEAST( @one:="two", 1 ), 2)
, а он смотрит, что внутрях функции LEAST сплошь константы получаются и редуцирует вызов функции... да ишо и молча... бяда, ой бяда.
помоему беда это когда пишут функции во where
6 авг 12, 21:56    [12971434]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
с какой из СУБД
Guest
Arhat109
Не, в нормальных проектах вумные оптимизаторы - зло.

А с какой из СУБД с вумным оптимизатором вы хорошо знакомы?
7 авг 12, 02:10    [12972301]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
Arhat109
Member

Откуда: из СССР
Сообщений: 3430
с какой из СУБД, "хорошо" - понятие растяжимое. Слегка знаком был с MS SQL Server особенно в части работы через MS Access-97...

"слегка" - это разработка только двух проектов с нуля и в одиночку:

1. Товарная СУБД для учета склада компьютерной фирмы с полуавтоматом по распознаванию "одинаковости" товарной позиции от разных поставщиков с элементами самообучения проги. Основной интерфейс оператора - MS Access, хранение MS SQL. Проект реализован в пилотной версии, и брошен по причине потери места работы по личным мотивам.

Собственно мой интерес к ИИ здесь и нарисовался...

2. Учет ТМЦ для издательства. Конкретно реализация первой версии, в виде переноса пилотного проекта с Мускула (ещё какой-то там 3-й версии MyIsam) на MS SQL... Проект также брошен по причине неспособности руководства издательства преодолеть саботаж руководителей среднего звена.

Вот уже третий год работаю на MySQL 5.1.48 ... и, как оценивается другими - знаю его виртуозно... но вот сам о себе такого сказать не могу. Хотя бы потому, что через запрос, в доку все равно лезешь. В браузере, не закрывается 4 вкладки: MySql, HTML, PHP, JQuery.
Это к тому, что "хорошо" - очень относительно.
7 авг 12, 07:06    [12972432]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
Arhat109
Member

Откуда: из СССР
Сообщений: 3430
SergSuper, беда - это когда программист вместо понимания чего и зачем он использует, пользуется чужим мнением без анализа.
7 авг 12, 07:08    [12972434]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
Arhat109,
автор
Гораздо хужее вумный (как вутка, тока не крякает) - оптимизатор. Ты предполагаешь одно, а он лепит - другое (например редукция неизменяемого подвыражения, которое тебе на самом деле "душу греет")...и главное молчит зараза (не крякает ведь)!

"Че да как",это например разобраться почему оптимизатор не использует индексы,а не прибивать их гвоздями.
Ну если план выполнения запроса не смотреть,то это конечно молча...
7 авг 12, 09:57    [12972813]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
Arhat109
Member

Откуда: из СССР
Сообщений: 3430
denis2710,
ежели оптимизатор тупой, чего туды смотреть? ;)

В нормальном, развесистом проекте к каждой табличке идет не один запрос, и индексов там навешано как г...<вырезано самоцензурой>... много в общем. А то и по нескольку на одно поле. Нафига, заморачиваться и куда-то смотреть, когда можно тупо сказать какой конкретно именно тут нужен? ;)

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

Из прошлой жизни (исключительно как пример для понимания):

Долгое время ответственные вещи писал только на Ассемблерах, не доверяя "вумным оптимизаторам", за что был прозван в узком кругу "lastbyte" (в смысле код вылизан до последнего байта). И только после того, как Ватком С компилятор смог породить код длинной в 3 килобайта, практически совпадающий с моей писаниной "байт в байт", вплоть до выбора тех же регистровых групп и выкрутасов... в тогда начал писать всё на Сях... зная и понимая, что породит компилятор. Но, в своё время, это был лучший компилятор со всеми возможными оптимизациями.

Я это к чему: нормальному программисту оптимизатор, как таковой не нужен. Он сам оптимизатор. А начинающему, все равно не поможет, только запутает. Для простых вещей, да полезен. На то они и простые, там по большому счету "все равно".
7 авг 12, 16:44    [12976451]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
denis2710
Member

Откуда: Москва
Сообщений: 3384
Arhat109
denis2710,
ежели оптимизатор тупой, чего туды смотреть? ;)
Нафига, заморачиваться и куда-то смотреть, когда можно тупо сказать какой конкретно именно тут нужен? ;)

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

Смысл смотреть на план есть всегда.Хотя нет, если 2 таблицы с 3 записями и 4 пользователями,то наверно смысла смотреть нет.
автор
В нормальном, развесистом проекте к каждой табличке идет не один запрос, и индексов там навешано как г...<вырезано самоцензурой>... много в общем. А то и по нескольку на одно поле. Нафига, заморачиваться и куда-то смотреть, когда можно тупо сказать какой конкретно именно тут нужен? ;)

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

Мягко говоря странная фантазия СУБД без оптимизатора.Начинающим и не только оптимизатор помогает.Еще более полезен для сложных.И то почему получается не оптимальный план выполнения надо разбираться имхо.
7 авг 12, 18:00    [12976931]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
Arhat109

Долгое время ответственные вещи писал только на Ассемблерах, не доверяя "вумным оптимизаторам", за что был прозван в узком кругу "lastbyte" (в смысле код вылизан до последнего байта). И только после того, как Ватком С компилятор смог породить код длинной в 3 килобайта, практически совпадающий с моей писаниной "байт в байт", вплоть до выбора тех же регистровых групп и выкрутасов... в тогда начал писать всё на Сях... зная и понимая, что породит компилятор. Но, в своё время, это был лучший компилятор со всеми возможными оптимизациями.
ну вообще-то хвастаться тут нечем. Вместо того что бы продукт создавать, вы занимались соревнование с компилятором, теперь перешли на борьбу с оптимизатором, неудивительно что проекты бросались прежде чем вы успевали их осчасливить
я лично никогда такой ерундй не занимался, если работает с приемлемой скоростью - то и пускай, если тормоза непонятные - то да, надо план смотреть, но это очень редко бывает
если у вас постоянно тормоза - значит вы что-то не так делаете, я бы советовал думать в эту сторону
7 авг 12, 18:23    [12977074]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54803

Arhat109
В нормальном, развесистом проекте...

....порождённом больной фантазией разработчика, который от балды создавал индексы на каждый
чих, видимо, в силу привычки работы с Paradox и прочим DBase-м.

Если для Вас такие проекты - норма, это диагноз.

Posted via ActualForum NNTP Server 1.5

7 авг 12, 19:00    [12977266]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
Arhat109
Member

Откуда: из СССР
Сообщений: 3430
Dimitry Sibiryakov, да, проекты из 200-500 таблиц, как-то норма. Если Вы работаете только с одной-двумя, то Вам это не надо.
8 авг 12, 06:10    [12978609]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54803

Arhat109
проекты из 200-500 таблиц, как-то норма. Если Вы работаете только с одной-двумя, то Вам
это не надо.

А вот с этого места подробнее, пожалуйста: как стратегия создания индексов зависит от
количества таблиц в базе?

Posted via ActualForum NNTP Server 1.5

8 авг 12, 10:52    [12979637]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
tanglir
Member

Откуда:
Сообщений: 28966
Dimitry Sibiryakov, ну, в мускуле есть такая духитрость - на каждый ФК нужен индекс в дочерней таблице. И неважно, сколько разных значений в том поле будет. Вынь да положь ему индекс, вот и всё тут. Так что если у ТС куча связей... впрочем, я в этом сомневаюсь :)
8 авг 12, 11:20    [12979958]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54803

tanglir
на каждый ФК нужен индекс в дочерней таблице.

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

Posted via ActualForum NNTP Server 1.5

8 авг 12, 13:43    [12981432]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
Arhat109
Member

Откуда: из СССР
Сообщений: 3430
Dimitry Sibiryakov, мне нравится ваш троллинг. Где нашли про "каждое" поле? При реализации по ТЗ - также фантазируете или только тут? ;)

Там було индексов ... многа, в том числе и по НЕСКОЛЬКУ НА ОДНО поле.

И, как вам правильно указали - во-первых каждый внешний ключ в InnoDeBiloid - индексируется. Это раз, а если мне нужны составные уникальные индексы (например для вставки) - это ОТДЕЛЬНЫЙ индекс, а если мне нужны полнотекстовые для выборок - это тоже ОТДЕЛЬНЫЙ индекс, а если в отдельных (и как правило тяжелых запросах) надо иметь поиск с группировкой, то приходится иметь и сюда индекс

... потому как без индексов, ни мускуль, ни какая другая БД не пашут, и сносно работают только если вся БД целиком лезет в память.

Кстати, а где вы видели проекты в 200-500 таблиц с небольшим количеством связей? У нас нормально джойнится от 5 до 20 таблиц.
8 авг 12, 14:03    [12981624]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54803

Arhat109
Где нашли про "каждое" поле?

Здесь.

Arhat109
если в отдельных (и как правило тяжелых запросах) надо иметь поиск с
группировкой, то приходится иметь и сюда индекс

Если мускуль хреново (медленно) сортирует или разработчик БД агрегирует миллиардные
таблицы, это сугубо их проблемы. Не надо обобщать.

Posted via ActualForum NNTP Server 1.5

8 авг 12, 14:18    [12981765]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
Arhat109
Member

Откуда: из СССР
Сообщений: 3430
Dimitry Sibiryakov, поздравляю, но там - нет этого.

И воббще, предлагаю прекратить троллинг. Тему ваще предлагаю закрыть, потому как ответ на поставленный вопрос дан и уже давно.
8 авг 12, 14:33    [12981894]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
tanglir
Member

Откуда:
Сообщений: 28966
Arhat109
а если мне нужны составные уникальные индексы
...то это странно, т.к. такой индекс по идее должен быть один (он же натуральный ПК). Ну либо таблица не нормализована, но в таком случае афтар ССЗБ.
8 авг 12, 18:19    [12983786]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
Arhat109
Member

Откуда: из СССР
Сообщений: 3430
tanglir,

Во-первых, проекты такого размера, как правило, тянутся десятилетиями и там есть всё - и нормализованные и не очень и даже совсем не нормализованные куски данных. Сталкивался даже с сознательной денормализацией... под тем самым, любимым Paradox.
Смотря кто, с каким набором знаний/навыков/умений и опыта это ваял, насколько был ограничен по времени, зачем оно было нужно сначала и к чему это всё привело потом...

Во-вторых, в таких проектах, реально бывает по нескольку уникальных индексов (правильно в основном при денормализации), когда например, надо найти все письма, отправленные заданным комплектом отправителей, по заданной тематике (комбинации уникальны) в заданном диапазоне дат, а для другой выборки требуется выбрать письма, отправленные для комплекта получателей по тематикам (блин, опять уникальная комбинация...) и тоже в заданном диапазоне дат, например за последний год. И совсем неважно, как хранятся отправители, получатели и тематики писем - текстом или идентами из справочников... (например, переписка через портал покупателя с продавцом)... нормализовано (не знаю зачем - письмо оно и в африке письмо, места - хватает, выборка все равно по индексам)... и чё? Два уникальных индекса (ну не может одно письмо втыкаться повторно!) - вынь и положь. Да и быстрее должно быть как понимаю (структура индекса проще, не?).

Понятно, что на самом деле уникальны тройки отправитель-тематика-получатель, но нужны - пары.

В-третьих, абревиатура требует расшифровки.
9 авг 12, 11:38    [12986492]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
tanglir
Member

Откуда:
Сообщений: 28966
Arhat109
Сталкивался даже с сознательной денормализацией... под тем самым, любимым Paradox.
Ну, там вообще удивляться ничему нельзя :)
Arhat109
Два уникальных индекса (ну не может одно письмо втыкаться повторно!) - вынь и положь. Да и быстрее должно быть как понимаю (структура индекса проще, не?).
Обозначьте структуру данных - из этого потока сознания она непонятна. Как мне видится, есть письмо с, грубо говоря, 4 значимыми атрибутами: отправитель, получатель, дата, тематика (тут может быть набор тем 1:М). Ну и куда тут может "одно письмо втыкаться повторно"?
Arhat109
В-третьих, абревиатура требует расшифровки.
http://lurkmore.to/ССЗБ
9 авг 12, 12:11    [12986738]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
Arhat109
Member

Откуда: из СССР
Сообщений: 3430
tanglir, пример из реального проекту.
"Письмо" - минимально так и есть 4 поля: from, to, subject, date. Утрировано, тематика и есть subject. Комбинация полей from,to,subject - уникальна. Но также, уникальны и пары from-subject и to-subject, а вот пара from-to может иметь много разных subject. Вот об ентом и речь.

Когда надо из большой (достаточно) таблички выдрать данные - используются или тот или другой индекс. Почему не повесить на них признак уникальности? ИМХО, неуникальный индекс - должен быть всяко сложнее в своей структуре... а значит - дольше. Кстати, на практике, оба индекса были построены в порядке subject-to и subject-from... глюки оптимизатора - практически гарантированы. ;)
Авторство не моё, но столкнуться пришлось...

Можете обойтись одним индексом?

Пасибки за ссылку, не знал.
9 авг 12, 13:26    [12987454]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
Arhat109
Комбинация полей from,to,subject - уникальна.


Это с какого перепугу?!
9 авг 12, 13:35    [12987541]     Ответить | Цитировать Сообщить модератору
 Re: MySql vs Postgre vs ?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54803

Arhat109
Можете обойтись одним индексом?

Легко. В любой нормальной СУБД хватит одного индекса на Subject. И может быть ещё один на
To. Но мускулистам, видимо, такое и не снилось...

Posted via ActualForum NNTP Server 1.5

9 авг 12, 13:39    [12987582]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить