LINUX.ORG.RU

Ответ на: комментарий от anonymous

> идем http://www.erserver.com/ Таким образом твоему eRServer полгода от рождения.. Это ты называешь опенсурс?

> :)) я фигею.. я ему цитирую лицензию с оффициального сайта, а он всякую чушь еще порет.. с лицензией пуст сначала что нить сделают, а потом говорят, что оно у них есть..

А это по твоему что: http://gborg.postgresql.org/project/erserver/projdisplay.php eRServer is a descendent from the rserv code. It is a trigger-based single-master/multi-slave asynchronous replication system. This project is released under the Berkeley/BSD license.

Ссылка стоит с башки http://www.erserver.com/

teodor
()
Ответ на: комментарий от anonymous

>черт побери, это так же верно, как и то что при встрече слона с дельфином побеждает последний.

Конечно дельфины победят.. поэтому слоны никогда не заплывают далеко в море..

walrus
()
Ответ на: комментарий от anonymous

WAL

WAL, GiST, MVCC и прочие шняги - это просто следствия некоторых особеннойсте постгре и ничего больше. в мускуле это просто по-другому сделано. btw, в нём vacuum нету.:-)

btw, разнос log и базы по разным дискм даёт хороший прирост в pg. аналогичный как в mssql.

mumpster ★★★★★
()
Ответ на: комментарий от anonymous

>MVCC - Multi version concurence control. Фича управляющая видимостью результатов других транзакций для текущей. Например, можно выставить что при begin'е сотояние базы фиксируется (ТОЛЬКО для текущей транзакции, все остальные нормально все видят) или текущая транзакция видит только закоммиченные рез-таты других и тд

Из документации на mysql:

В терминах описания уровней изоляции транзакций (SQL-1992), InnoDB по умолчанию использует REPEATABLE READ. Начиная с версии 4.0.5, InnoDB предлагает все 4 уровня изоляции описанные в стандарте SQL-1992.

walrus
()
Ответ на: комментарий от anonymous

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

Если есть проблемы с пониманием русской пунктуации - к врачу, пожалуйста. Или за школьным учебником русского языка - тоже неплохо помогает.

Odysseos
()
Ответ на: комментарий от int19h

> Во-первых, не C, а C++. А во-вторых, когда в Delphi появятся шаблоны и > автоматическое (хотя бы на уровне C++) распределение памяти, меня >позовите, пожалуйста =)

>int19h (*) (11.03.2004 19:10:34)

Шаблоны в С++ от убогости обекта, как сущности. В Delphi классы более близки к Java классам.
А что такое автоматическое распределение памяти?

tukan
()
Ответ на: комментарий от Odysseos

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

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

вот для мускула есть куча коммерческих кластеров.. несколько опенсурсных.. кластеризация вообще родная и давно.. а они еще и у сименс что то про кластеры прикупили, и (http://www.mysql.com/products/cluster/index.html)

в апреле на

MySQL Users Conference, 14-16, 2004 in Orlando, Florida.

показать собираются..

просто слово кластер уж очень многозначное..

объяснил бы прямо тогда что имеешь в виду..

anonymous
()
Ответ на: комментарий от anonymous

Ты невнимательно читал. Я уже писал выше (Odysseos (*) (11.03.2004 20:59:54)), что eRServer упомянул в контексте репликации, а не кластера.

Odysseos
()
Ответ на: комментарий от Odysseos

>Ты невнимательно читал. Я уже писал выше (Odysseos (*) (11.03.2004 20:59:54)), что eRServer упомянул в контексте репликации, а не кластера.

То есть в плане кластера ты вообше ничего не упомянаешь, так что ли?

я вон уже сколько ссылок накидал, а у тебя пока одни слова..

и эти люди запрещают мне ковырять в носу..

anonymous
()
Ответ на: комментарий от anonymous

Вообще-то, я и не ставил себе целью закидывать кого-либо ссылками. Я даже и на eRServer ссылки не кидал - только упомянул его.

Сам я кластер из PostgreSQL не делал - надобности не было, потому специально этой темой не занимался, только читал, что такие решения есть.

Читал - если интересно - на http://www.PostgreSQL.org.

ps. Кстати... А сам благородный дон может похвастаться, что ставил/настраивал какой-нить MySQL-кластер?..

Odysseos
()
Ответ на: комментарий от Odysseos

>Сам я кластер из PostgreSQL не делал - надобности не было, потому специально этой темой не занимался, только читал, что такие решения есть.

угу.. а кто сказал, что решения существуют в свободном виде? кластеров и под мускул полно, вот только хороших __открытых__ раз два и обчелся..

>ps. Кстати... А сам благородный дон может похвастаться, что ставил/настраивал какой-нить MySQL-кластер?..

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

anonymous
()
Ответ на: комментарий от anonymous

>Индекс по полнотексту тоже через GiST сделан.

>ну может их и можно сделать через GiST, но вот мускул их как то без них сделал..

Ну чтоб в теорию не углубляться (полнотекст в PgSQL в душе использует модификацию RD-tree, а в MySQL - inverted index со всеми вытекающими недостатками и преимуществами в обоих случаях), поэтому только одно обоснование - GiST сильно экономит время разработки за счет экранирования от структуры индекса, страниц, транзаций и др.

>Этого ничего нет, но именно по этому я и говорю, что мускул скорее гонится за рынком, на котором никакой сферической в массе нет..

Базы разные важны, базы разные нужны. На ФИАТе я не буду перевозить щебень, а на грузовике ездить за хлебом.

>читай здесь: http://www.mysql.com/doc/en/InnoDB.html

Признаю, на первый взгляд есть. Но дальше надо читать...

Гы. Ну вот и приехали http://www.mysql.com/doc/en/InnoDB_File_Defragmenting.html аналог vacuum'а для pgsql Гы 2. http://www.mysql.com/doc/en/InnoDB_restrictions.html Из-за мльтиверсионности появился медленный select count(*) чем обожатели MySQL попрекали pgsql: Гы 3 Загадки сыпались, как из рога изобилия (можно я переводить не буду?):

InnoDB tables do not support FULLTEXT indexes - а если я хочу и MVCC полнотекст в обной даже не табоице, а базе?

When you restart the MySQL server, InnoDB may reuse an old value for an AUTO_INCREMENT column (i.e. a value that was assigned to an old transaction that was rolled back). Опа, опять беда и огорчение...

DELETE FROM TABLE does not regenerate the table but instead deletes all rows, one by one. (я не понял, что такое regenerate table???)

On some operating systems datafiles must be < 2GB.

Что в результате? MVCC c кучей загадочных и неожиданных свойств...

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

>Вы правильно уловили всю суть.. Именно строготипизированный C/C++ при попытке присвоить например инту например дабл именно и кидает варнинг.. Т.е. имеено в соответствии с этой идеалогией, мускул себя и ведет..

Не-а... :) MySQL ведет себя как perl (для воинствующих: я не имею ничего против него): print 1*'qwerty',"\n" что тебе напечатает? atoi - не рекомендуется к использованию, используйте strtol, он умеет детектировать ошибки. Эквиваелнта NOT NULL в распространенных языках я не знаю. Любой разумный класс, реализующий хранение даты не запишет в себя ерунду. Да и как сортировать, какой день раньше - 2002-02-31 или 2002-03-00? :)

>>>># При попытке сохранить в числовом столбце величину, выходящую за >допустимые пределы, сервер MySQL вместо нее будет сохранять в этом >столбце наименьшую или наибольшую допустимую величину.

#include <stdio.h> int main(int argn, char *argv[]) { float b= 1.5e60; printf("%f\n", b); return 1; }

Что тебе напечатает? правильно - inf.

teodor
()
Ответ на: WAL от mumpster

>WAL, GiST, MVCC и прочие шняги - это просто следствия некоторых особеннойсте постгре и ничего больше. в мускуле это просто по-другому сделано.

Извини, это не шняги и не следствия, это полезные фичи, отсутствуюшие во многих свободных и платных БД

>btw, в нём vacuum нету.:-) Теперь есть, см мой предыдущий пост :)

teodor
()
Ответ на: комментарий от anonymous

То есть - твои ссылки, в общем-то, не сильно отличаются от "голых" слов, так?

...Ну вот ссылки:
Clusgres - http://www.linuxlabs.com/clusgres.html
LifeKeeper - http://www.openminds.co.uk/linux_clusters/postgresql.htm

Кроме того - PostgreSQL поддерживает обычные Linux-кластеры.

Odysseos
()
Ответ на: комментарий от teodor

>Ну вот и приехали http://www.mysql.com/doc/en/InnoDB_File_Defragmenting.html аналог vacuum'а для pgsql

неправильно.. Эта дефрагментация аналог optimize table для myisam. Ты можешь ей вообще не пользоваться и горя не знать. Разница в скорости там очень нзначительная. А вот без пылесоса на postgres - жить тяжело..

>Гы 2. http://www.mysql.com/doc/en/InnoDB_restrictions.html Из-за мльтиверсионности появился медленный select count(*) чем обожатели MySQL попрекали pgsql

Это так. Только есть нюанс. В mysql я могу выбирать тип таблицы. В postgres я всегда имею медленный select count(*)

>When you restart the MySQL server, InnoDB may reuse an old value for an AUTO_INCREMENT column (i.e. a value that was assigned to an old transaction that was rolled back). Опа, опять беда и огорчение...

В чем тут проблема?

>DELETE FROM TABLE does not regenerate the table but instead deletes all rows, one by one. (я не понял, что такое regenerate table???)

regenerate - это посмотри команду truncate, которая делает то же что и delete from table только гораздо быстрее (drop-ает и пересоздает таблицу заново, только уже пустую)

>On some operating systems datafiles must be < 2GB.

Все правильно. файловая система ext2 к примеру. на этот случай вы можете сделать несколько datafiles для innodb

> а если я хочу и MVCC полнотекст в обной даже не табоице, а базе?

Никто не мешает использовать в одной базе таблицы разного типа.

walrus
()
Ответ на: комментарий от anonymous

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

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

HellAngel ★★
()
Ответ на: комментарий от anonymous

> пример из жизни: нада было сделать почтовик для конторы. я не хотел > заводить юзверей в системе поэтому решил сделать на связке postfix + > cyrus sasl + postgresql.

ага. а теперь давай попробуем maidrop пр&#1110;делать

bormann
()
Ответ на: комментарий от tukan

> Шаблоны в С++ от убогости обекта, как сущности.

Предложи замену. То-то я смотрю, шаблоны и в C#, и в Яву добавляют...

> В Delphi классы более близки к Java классам.

Да. И вот именно за это надо бить канделябрами. Единственное, что в дельфе радует - наличие виртуальных конструкторов и properties. Но отсутствие шаблонов в частности и generic programming вообще режет все на корню.

> А что такое автоматическое распределение памяти?

Например, garbage collector. В том числе и reference-counting. Или же система resource-acquisition-is-initialization, как в C++. В любом случае, чтоб деструкторы ручками вызывать пореже приходилось.

int19h ★★★★
()
Ответ на: комментарий от int19h

4int19h:
>Например, garbage collector. В том числе и reference-counting. Или же >система resource-acquisition-is-initialization, как в C++. В любом
>случае, чтоб деструкторы ручками вызывать пореже приходилось.

Ну. объекты с reference counting в Дельфи как раз делать можно.
Hint: COM.
(да, я знаю, что решение некрасивое и в ряде случаев избыточное. Но рабочее).

anonymous
()
Ответ на: комментарий от kaaos

>>а как у постгреса дела с горячим бекапом обстоят?

>Нормально.

Даже более чем нормально - его мультиверсионности завидуют даже ораклисты. Его pgdump и есть горячий бекапап.

anonymous
()
Ответ на: комментарий от bormann

а зачем ... у меня по LMTP все бегает ... )))

anonymous
()
Ответ на: комментарий от anonymous

>>эх, ещё бы под винды его без цигвина :)

Держи без цигвина: http://213.221.6.42/cis/postgres_beta4.zip или http://213.221.6.42/cis/PgSQL731wina1.exe

OpenStorm ★★★
()
Ответ на: комментарий от anonymous

Мужики, отклонились от темы.

Уменя повторный вопрос о ссылочной целостности в MySQL. Самому проверять лень.

1. Есть таблица А с первичным ключем
2. Есть таблица Б с внешним ключем, ссылающимся на первичный в А.
3. Обе не пустые.

Позволит мне MySQL "delete * from A"

Если нет, то у меня на него есть планы.

anonymous
()
Ответ на: комментарий от anonymous

> delete * from A

Прошу прощения, конечно без звёздочки.

anonymous
()
Ответ на: комментарий от anonymous

Позволит? И после этого кто-то называет её клиент-серверной СУБД?

Эти люди не видели даже MS Access наверное.

anonymous
()
Ответ на: комментарий от raorn

> А что будет с таблицей Б?

Форейн ки перестанет работать. НО! Как только снова появится Б, в А уже ничего не положишь, пока в Б не появятся записи. НО! В Б уже не даст вставить старые значения, которые используются в А - ЕГГОГ будет.

anonymous
()
Ответ на: комментарий от anonymous

pgdump не имеет никакого отношения к горячему бекапу.
это подобие exp/imp.

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

anonymous
()
Ответ на: комментарий от anonymous

>>>а как у постгреса дела с горячим бекапом обстоят?

>>Нормально.

>Даже более чем нормально - его мультиверсионности завидуют даже >ораклисты. Его pgdump и есть горячий бекапап.

Да, дамп базы это вам не бекап rman-ом. И нафиг не надо никакие репозитории, контролфайлы, реду-логи, арк-логи. А то у оракла - фи, бяда прям с ним.

anonymous
()
Ответ на: комментарий от anonymous

а какой результат дает выражение

create view v_test as select some_column*2 from t_some_table;

в обеих рассматриваемых субд?

anonymous
()
Ответ на: комментарий от anonymous

Ай, сдается мне что в стайбл версии MySQL слово view не используется в связи с присутствием отсутствия оных.

anonymous
()

Люди, кто скажет, как правильно сделать запрос на Postgres?

Есть табличка с количеством записей под 100000. И в определённые моменты времени выплняется запрос без WHERE. В оракле полученные данные копируются кусками, по мере надобности, а postgres вываливает их все сразу, и, естественно, тормозит. Как это победить?

adarovsky ★★★★
()
Ответ на: комментарий от Odysseos

Гы

>>>в корпоративном секторе что Delphi, что C/C++ давно и равно "укатаны" Java'ой

Смелое заявление. Слава богу, ничего общего с действительностью не имеющее.

anonymous
()
Ответ на: комментарий от anonymous

>Да, дамп базы это вам не бекап rman-ом. И нафиг не надо никакие репозитории, контролфайлы, реду-логи, арк-логи. А то у оракла - фи, бяда прям с ним.

Да, постгресу далеко еще до оракула в плане гибкости бэкапа, но то, что можно получить согласованную копию не останавливая сервер - уже хорошо. В TODO листе сидят инкрементальный бэкап и point-in-time recovery, причем последнее - в urgent разделе. Сделают - и, думаю, поднимется уровень задач, которые могут быть возложены на постгрес.

kaaos
()
Ответ на: комментарий от adarovsky

Использовать явный курсор.

Лучше расскажите, использует ли текущия версия индекс для min и max? В 7.2.1 у меня не удалось заставить его это делать для запроса без where.

anonymous
()
Ответ на: комментарий от anonymous

>Лучше расскажите, использует ли текущия версия индекс для min и max? В 7.2.1 у меня не удалось заставить его это делать для запроса без where.

А количество записей в таблице какое ?

Bolik
()
Ответ на: комментарий от anonymous

>>pgdump не имеет никакого отношения к горячему бекапу.
>>это подобие exp/imp.
А какая разница? Надо, чтоб было как в интербейзе? Это когда
легко и непринужденно можно получить невосстановимый *.gbk?
>>что-то в доке по постргесу - я даже упоминания не нашел про горячий >>бекап.
pg_dump - он что, холодный, что ли?
>>а как база себя поведет если грохнется винт, на котором находились >>данные, не словарь?
Есть такой анекдот: "А если я тебя монтировкой по башне хряпну, на
какой ноге шнурок развяжется?"
>>ее надо останавливать для восстановления?
Сам-то как думаешь? Сервер не надо. А базу - как ты вообще собираешься
восстанавливать базу, с которой в данный момент работают

highlander
()

фичесравнение

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

1) Нет и неизвестно

1.1) Представления (VIEW). В Постгресе можно также сделать обновляемыми.

1.2) Триггеры. Стоит сразу отметить, что если в базе есть триггеры, то примитивную асинхронную репликацию с одним мастером сделать не проблема даже на коленке. Такую как щас в мыскле, если кто не понял. Такую как в Постгресе в contrib/rserv, она на моей бывшей работе уже года два работает, не кашляя.

1.3) Произвольные ограничения целостности (CHECK). Бэз комментариев.

1.4) Онлайн-бэкап. Таблицы типа MyISAM по определению нельзя бэкапить онлайн, а тулза для InnoDB стоит денег. Вот поэтому мысклёвая репликация и используется в основном как эрзац-средство бэкапа. Типа скачай бесплатный мыскль и купи к нему новый компьютер, для бэкапа, хе-хе.

2) Типа есть

2.1) Внешние ключи. В мыскле работают только на InnoDB, не могут быть отложенными (DEFERRABLE). Создайте-ка циклическую зависимость, мысклежуи?

2.2) Полнотекстовый поиск. Только на MyISAM. А теперь смотрим на предыдущий пункт...

2.3) Геометрические типы. Только на MyISAM.

2.4) Подзапросы. Только в альфа версии. Из альфы 4.1 вытащить уже до-о-олго не могут, видать исключительное говно получилось.

2.5) Хранимые процедуры. Только в ещё более альфа версии, см. предыдущий пункт.

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

Ну и наконец, на радость мысклежуям:

3) В мыскле есть, а в Постгресе нет

3.1) Родная версия под win32

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

sad_spirit
()
Ответ на: комментарий от highlander

>>pg_dump - он что, холодный, что ли?
какой объем данных ты лично пробовал восстанвливать pg_dump'ом?
сколько времени у тебя заняло восстановление хотя бы 40Г?
за день уложился?

>> Сам-то как думаешь? Сервер не надо. А базу - как ты вообще собираешься
>> восстанавливать базу, с которой в данный момент работают
я думаю, что нет. а зачем?
ну будет часть данных недоступна. но все остальное-то в порядке, в том числе и словарь.
я в такой ситуации не останавливаю правильные базы:
sql> alter datafile(tablespace) ... offline
rman> restore
rman> recovery
sql> alter datafile(tablespace) ... online

anonymous
()
Ответ на: комментарий от anonymous

>pgdump не имеет никакого отношения к горячему бекапу.
>это подобие exp/imp.


Ни какого сравнения! вот только на этой недели настраивал exp - и могу
сказать определено: после pgdump хочется материться, одно то, что нужно использовать для exp fifo чтобы на лету сжимать, уже дастало.

Если же говорить об работе, то при exp база заметно тормозит, против
вполне нормальной работе с pgdump (просто еще один клиент с глубокой выборкой).

Да конечно, может потребоваться более гибкий механизм бекапа, но все предпосылки есть.

А sqlplus, так вообще песня: ограничение на 256 символов в строке
просто поражает, не говоря уже об редактировании строки и хелпе.

anonymous
()
Ответ на: комментарий от anonymous

resetlogs еще хорошо бы сделать...

anonymous
()
Ответ на: комментарий от anonymous

Мон шер, ну не используй ты SQLPlus если не нравится. Или к тебе лично Ларри с ножом пристал, что бы ты только SQLPlus использовал? Developer, Toad, Tora - используй что нравится.

anonymous
()
Ответ на: комментарий от anonymous

>какой объем данных ты лично пробовал восстанвливать pg_dump'ом? >сколько времени у тебя заняло восстановление хотя бы 40Г? >за день уложился? pg_dump - он, вообще-то, только бекап делает. Восстанавливать не обучен\par Архив от двухгиговой коллекции БД восстанавливается минут 15, не больше.\\ гзипнутый архив занимает, кстати, всего пару сотен мегабайт.\par Рискну предположить, что на восстановление твоих 40 ГБ уйдет часа два-три.\\ >ну будет часть данных недоступна. но все остальное-то в порядке, в том >числе и словарь. Словарь - это что, применительно к БД? Кстати, что юзверь может делать, когда "часть данных недоступна"? >я в такой ситуации не останавливаю правильные базы: В какой? Грохнутый винт? Предпочитаю иметь дело с правильными серверами, чтобы не было всяких таких ситуаций. >sql> alter datafile(tablespace) ... offline

highlander
()
Ответ на: комментарий от anonymous

>Позволит мне MySQL "delete * from A"

Если тип данных InndoDB то не позволит

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.