Реклама на сайте Advertise with us
Тема: MySQL vs BerkeleyDB Расширенный поиск по форуму
 
Внимание! В связи с устареванием топика эта страница была взята из кэша.
Автор Сообщение
Информация о пользователе Dragon


Зарегистрирован: 09.02.03
Сообщения: 270
Ссылка на сообщениеДобавлено: 31/07/04 в 02:42     

Подскажите, Беркли действительно имеет большое преимущество перед MySQL на больших объемах траффика?

K началу

 
Информация о пользователе Stek


Зарегистрирован: 24.10.02
Сообщения: 1613
Ссылка на сообщениеДобавлено: 31/07/04 в 10:18     

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

K началу

 
Информация о пользователе begemot


Зарегистрирован: 25.12.03
Сообщения: 172
Ссылка на сообщениеДобавлено: 31/07/04 в 12:50     

Stek: ну .. BerkeleyDB это как хеш так и очередь, сложная система состоящая из подсистемы блокировок и поддерживающая транзакции. Это уже далеко не просто хеш.

Dragon: Mysql построен на основе модифицированной BerkeleyDB. Можешь делать выводы icon_smile.gif

где-то я читал что Google использует BerkeleyDB для хранения данных, но эти сведения не проверены.

K началу

 
Информация о пользователе Stek


Зарегистрирован: 24.10.02
Сообщения: 1613
Ссылка на сообщениеДобавлено: 31/07/04 в 14:01     

begemot: так то оно так, я вот только не пойму как мускуль и берклей сравнивать , по назначению и использованию это же совершенно разные вещи.

K началу

 
Информация о пользователе Pentarh


Зарегистрирован: 05.04.03
Сообщения: 2390
Ссылка на сообщениеДобавлено: 31/07/04 в 15:24     

Пробовал я как-то сделать довольно простенькие таблички на основе юниксовых BerkleyDB хэшей. Правда пробовал на ПХП. Ну короче по чтению комп завис на пяти запросах в секунду icon_smile.gif В то же время простой мускульный (MyISAM) аналог таких хэшей держал два или три десятка в секунду.

K началу

 
Информация о пользователе Dragon


Зарегистрирован: 09.02.03
Сообщения: 270
Ссылка на сообщениеДобавлено: 31/07/04 в 17:16     

Вот-вот. По идее, Беркли должна бить Майсикл со страшной силой... Ибо беркли по сути простейшая база с одним индексом. Однако мнения у людей расходятся, что и странно.

K началу

 
Информация о пользователе Pentarh


Зарегистрирован: 05.04.03
Сообщения: 2390
Ссылка на сообщениеДобавлено: 31/07/04 в 17:43     

Я не берусь 100% утверждать, но мне кажется что BerkeleyDB в моем опыте лопухнулся на разных сессиях. Рискну предположить, что если бы была одна сессия, он бы сделал мускуль на раз-два-три.

Т.е. пять запросов СКРИПТА в секунду = пять циклов открытия/лока/чтения-записи/разлока/закрытия файла BDB.

В то же время мускуль это клиент-сервер. В нем при разных сессиях файлы БД открыты всегда одним и тем же процессом (mysqld или чего там).

По этому, грубо говоря там где BDB делает операцию
открытия/лока/чтения-записи/разлока/закрытия
там мускуль делает только операцию чтения-записи.

Надо бы попробовать повторить опыт чисто на мускуле для таблиц типа MyISAM и BerkeleyDB (есть такой тип таблиц).

K началу

 
Информация о пользователе Stek


Зарегистрирован: 24.10.02
Сообщения: 1613
Ссылка на сообщениеДобавлено: 31/07/04 в 17:43     

Если знать и ПРАВИЛЬНО использовать берклай, получается 200+ обращений в секунду на 500Mhz пне, правда со SCSI дисками 7200 оборотов.
Хотя имхо тема дурная, это как велосипед и автомобиль сравнивать, когда никто незнает ни условий сравнения, ни условий эксплуатации.

K началу

 
Информация о пользователе mag


Зарегистрирован: 16.12.02
Сообщения: 127
Ссылка на сообщениеДобавлено: 31/07/04 в 20:01     

у меня скорости были примерно такие:
последовательный перебор списка записей в беркли 100k записей в секунду, выбор конкретного хэша ~30k в секунду
мускуль ~ 3k селектов в секунду
вот и делайте выводы, так что для чегото беркли рулит для чегото мускуль
для простенькой базы с hash=значение беркли однозначно, для чегото более-менее сложного беркли уже юзать сложно

K началу

 
Информация о пользователе begemot


Зарегистрирован: 25.12.03
Сообщения: 172
Ссылка на сообщениеДобавлено: 31/07/04 в 20:53     

лично я рекомендую новичкам не писать ничего на BerkeleyDB без крайней необходимости, так как это хоть и жутко быстрая но довольно капризная киска icon_smile.gif

Dragon: скажи какая у тебя задача и я скажу стоит ли использовать BerkeleyDB

K началу

 
Информация о пользователе Pentarh


Зарегистрирован: 05.04.03
Сообщения: 2390
Ссылка на сообщениеДобавлено: 31/07/04 в 21:17     

Не удивляйтесь таким расхождениям между моими наблюдениями и наблюдениеями mag.
Я имел ввиду кол-во обращений в секунду к ПХП-скрипту хитботом.

K началу

 
Информация о пользователе begemot


Зарегистрирован: 25.12.03
Сообщения: 172
Ссылка на сообщениеДобавлено: 31/07/04 в 22:47     

Pentarh писал:
Не удивляйтесь таким расхождениям между моими наблюдениями и наблюдениеями mag.
Я имел ввиду кол-во обращений в секунду к ПХП-скрипту хитботом.

влоб именно так и получается,
все будет хорошо если кешировать состояние ENV в системе,
либо обращаться из php к демону использующему BerkeleyDB, но это в большинстве случаев переписывание mysql.

K началу

 
Информация о пользователе Dragon


Зарегистрирован: 09.02.03
Сообщения: 270
Ссылка на сообщениеДобавлено: 01/08/04 в 02:24     

begemot писал:
лично я рекомендую новичкам не писать ничего на BerkeleyDB без крайней необходимости, так как это хоть и жутко быстрая но довольно капризная киска icon_smile.gif
Dragon: скажи какая у тебя задача и я скажу стоит ли использовать BerkeleyDB


Ну какие у нас могут быт задачи... icon_smile.gif Достаточно нагруженная траффиком система, несколько десятков INSERT и UPDATE (не селекты, а именно эти тяжелые для MySQL операции) в секунду... Вот и подумалось, что Беркли тут может помочь.

K началу

 
Информация о пользователе Pentarh


Зарегистрирован: 05.04.03
Сообщения: 2390
Ссылка на сообщениеДобавлено: 01/08/04 в 02:48     

Преимущества разных типов таблиц (офиц. мануал мускуля)

BDB:
By using BerkeleyDB tables, your tables may have a greater chance of surviving crashes, and also provides COMMIT and ROLLBACK on transactions.

InnoDB:
InnoDB provides MySQL with a transaction-safe (ACID compliant) table handler with commit, rollback, and crash recovery capabilities. InnoDB does locking on row level and also provides an Oracle-style consistent non-locking read in SELECTs. These features increase multiuser concurrency and performance.
InnoDB has been designed for maximum performance when processing large data volumes

HEAP:
HEAP tables use a hashed index and are stored in memory. This makes them very fast, but if MySQL crashes you will lose all data stored in them. HEAP is very useful for temporary tables!

Тебе по ходу подходят innodb

K началу

 
Информация о пользователе Stek


Зарегистрирован: 24.10.02
Сообщения: 1613
Ссылка на сообщениеДобавлено: 01/08/04 в 03:10     

Код:
Достаточно нагруженная траффиком система, несколько десятков INSERT и UPDATE (не селекты, а именно эти тяжелые для MySQL операции) в секунду

Странно, у меня на среднем железе пол миллиона инсертов минут за 5 пролетают.
Так что или дергаем программеров на правильность работы с базой, или идем осваить шаред мемори, там есть где развернуться icon_smile.gif

K началу

 
Информация о пользователе Dragon


Зарегистрирован: 09.02.03
Сообщения: 270
Ссылка на сообщениеДобавлено: 01/08/04 в 04:20     

Pentarh писал:
Преимущества разных типов таблиц (офиц. мануал мускуля)
BDB:
By using BerkeleyDB tables, your tables may have a greater chance of InnoDB:
InnoDB provides MySQL with a transaction-safe (ACID compliant) table handler with commit, rollback, and crash recovery capabilities. InnoDB does locking on row level and also provides an Oracle-style consistent non-locking read in SELECTs. These features increase multiuser concurrency and performance.
InnoDB has been designed for maximum performance when processing large data volumes
HEAP:
HEAP tables use a hashed index and are stored in memory. This makes them very fast, but if MySQL crashes you will lose all data stored in them. HEAP is very useful for temporary tables!
Тебе по ходу подходят innodb


Да, "locking on row level" - это то что надо, я думаю, плюс множественное чтение без лока... Ну а для маньяков icon_smile.gif можно держать самые критичные вещи в "HEAP tables" и с какой-то периодичностью сохранять информацию в базе другого типа.

K началу

 
Информация о пользователе Dragon


Зарегистрирован: 09.02.03
Сообщения: 270
Ссылка на сообщениеДобавлено: 01/08/04 в 04:24     

Stek писал:
Странно, у меня на среднем железе пол миллиона инсертов минут за 5 пролетают.
Так что или дергаем программеров на правильность работы с базой, или идем осваить шаред мемори, там есть где развернуться icon_smile.gif


Идем осваивать. icon_smile.gif Подскажи, где копать-то?

K началу

 
Информация о пользователе Stek


Зарегистрирован: 24.10.02
Сообщения: 1613
Ссылка на сообщениеДобавлено: 01/08/04 в 07:04     

Копать в гугле icon_smile.gif

K началу

 
Информация о пользователе Quantum[Tau]


Зарегистрирован: 15.03.04
Сообщения: 618
Ссылка на сообщениеДобавлено: 01/08/04 в 14:07     

Dragon писал:
Да, "locking on row level" - это то что надо, я думаю, плюс множественное чтение без лока... Ну а для маньяков icon_smile.gif можно держать самые критичные вещи в "HEAP tables" и с какой-то периодичностью сохранять информацию в базе другого типа.


HEAP в mySQL-3 + PHP не дает достойного преимущества.

K началу

 
Информация о пользователе Stek


Зарегистрирован: 24.10.02
Сообщения: 1613
Ссылка на сообщениеДобавлено: 01/08/04 в 14:51     

А что, кто то еще троечку использует ?

K началу

 
Информация о пользователе Quantum[Tau]


Зарегистрирован: 15.03.04
Сообщения: 618
Ссылка на сообщениеДобавлено: 01/08/04 в 19:01     

Stek писал:
А что, кто то еще троечку использует ?


Сын: Папа, почему Солнце всегда встает на востоке и заходит на западе?
Отец-системщик, отрываясь от дебаггера: Ты проверял? Точно работает? Глюков нет?
Сын: Точно.
Отец: Ради всего святого сынок, НИЧЕГО НЕ ТРОГАЙ!

Троечка работает, не глючит. Зачем трогать?

Сравнительных тестов четверки я не видел, кто-нить даст?

K началу

 
Информация о пользователе Stek


Зарегистрирован: 24.10.02
Сообщения: 1613
Ссылка на сообщениеДобавлено: 01/08/04 в 19:54     

Quantum[Tau]: Ну вобщем если от базы кроме банальных селектов, инсертов и прочей мелочи ничего не надо, то и тройки хватит.
Я например юзаю мускуль во все его возможности, да и обновления версий с фиксами багов, алгоритмов, никогда не помешают.

K началу

 
Информация о пользователе Quantum[Tau]


Зарегистрирован: 15.03.04
Сообщения: 618
Ссылка на сообщениеДобавлено: 01/08/04 в 23:05     

Stek:: можешь кратко сказать об используемых тобой возможностях четверки которых нет в трешке?

K началу

 
Информация о пользователе ivango


Зарегистрирован: 09.11.02
Сообщения: 1829
Ссылка на сообщениеДобавлено: 01/08/04 в 23:49     

на таблицах от мульена записей с большим индексом и постоянными инсертами BerkeleyDB рулит... я перешел на него после того, как у меня несколько раз падали индексы в таблице типа MyISAM...
с тех пор ни одного падения.

K началу

 
Информация о пользователе Stek


Зарегистрирован: 24.10.02
Сообщения: 1613
Ссылка на сообщениеДобавлено: 02/08/04 в 00:08     

Могу icon_smile.gif
Я занимаюсь не только сиджами и прочим траффиком, но и созданием полномастштабных проектов ...

Full-text - нормально заработал он только в 4 версии, плюс вот вот должен и utf начать поддерживать. Для поиска в больших объемах - просто незаменим.

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

Merge таблицы очень удобны стали в работе, фактически не отличаются от простых таблиц теперь. А скорость выборок иногда чуть ли не в 2 раза возрастает.

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

Ну и в дополнение, поддержка xml вывода, UNION, в запросе DELETE можно использовать несколько таблиц, улучшенная поддержка UTF ... да много чего.

Да и когда трешка последний раз обновлялась то ? Год назад. Фиксится куча багов, скорость и прочее. Та же трешка при ребуте сервака кнопкой питания (и если очень большая нагрузка на диск) часто била таблицы. В четверке за последние пол года только один случай припоминаю.

А тут еще вроде предстоит репликации делать ... куда там трешке.

K началу

 
Информация о пользователе Quantum[Tau]


Зарегистрирован: 15.03.04
Сообщения: 618
Ссылка на сообщениеДобавлено: 02/08/04 в 02:41     

Stek: Спасибо.

K началу

 
Информация о пользователе Pentarh


Зарегистрирован: 05.04.03
Сообщения: 2390
Ссылка на сообщениеДобавлено: 02/08/04 в 02:47     

Stek: спасибо

K началу

 
Информация о пользователе CJ-builder


Зарегистрирован: 22.06.04
Сообщения: 11
Ссылка на сообщениеДобавлено: 02/08/04 в 03:00     

Stek: Спасибо.

K началу

 
Информация о пользователе eromaker


Зарегистрирован: 16.02.04
Сообщения: 91
Ссылка на сообщениеДобавлено: 18/08/04 в 00:33     

Интересную дискуссию развели icon_smile.gif
Вопрос в том, для каких задач сравнивать

Просто так сказать - скажем - PostGre лучше MySQL нельзя. Для чего-то лучше, для чего-то хуже. Также и с берклёй. В принципе для трафоёмких скриптов всё же оптимально использовать свою базу, ориентированную конкретно на эту задачу.

K началу

 
Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!
Внимание! В связи с устареванием топика эта страница была взята из кэша.

Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »