Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Программирование / Programming (https://forum.zone-game.info/forumdisplay.php?f=98)
-   -   Выбор СУБД под Java сервер (https://forum.zone-game.info/showthread.php?t=9422)

Ramzessuss 04.08.2010 13:40

Выбор СУБД под Java сервер
 
Помогите выбрать СУБД ( Система управления базами данных ) для Java сервера Lineage II.

Свой ответ обоснуйте.

P.S. Вот что я знаю о...

PostgreSQL - СУБД, которая работает намного качественнее MySQL, но немного медленее. Так же это хороший бесплатный аналог Oracle Database.
MySQL - очень шустрая СУБД, но особым качеством никогда не выделялась...:cool: Очень хорошо показала себя при правильной настройке в "ВЕБе".
Oracle - юзал мало, плюсов много, минус один - тормозит систему ( у меня слабоватый комп ).
MSSQL Server - что то нечто тупое и медленное, некоторые ею очень хорошо пользуются, + не нашёл ни одного... поможете?
SQLite - что то быстрое и нестабильное) хотя юзал мало.:)

DeForMator 04.08.2010 14:00

Re: Выбор СУБД под Java сервер
 
Весь сок PostageSQL в том, что скорость меньше не намного, и огромная скорость тут не к чему. За-то качество на высшем уровне среди бесплатных СУБД.

ginger 04.08.2010 15:40

Re: Выбор СУБД под Java сервер
 
а вы с точки зрения кого спрашиваете?

Ramzessuss 04.08.2010 15:52

Re: Выбор СУБД под Java сервер
 
Ну я не спрашиваю, а интересуюсь))

С точки зрения администратора игрового сервера, у которого сборка, собственной разработки.

Ozzy 04.08.2010 16:33

Re: Выбор СУБД под Java сервер
 
Сборка "собственной разработки" и не знаете какую СУБД выбрать?=)

ginger 04.08.2010 17:47

Re: Выбор СУБД под Java сервер
 
слишком много неизвестных, чтобы ответить. При прочих равных я бы выбрал Postgresql. Только они не равные. За Oracle и MSSQL без серьезной подготовки лучше даже не браться. По Mysql, напротив, очень много информации, она где ни попадя стоит, но возможности ее куцы. Postgres - золотая середина, а остальные бд в опросе скорее для полноты.
Просто сменой бд увеличения производительности не добиться, требуется как настройка бд, так и оптимизация приложения под конкретный движок. К тому же, я сомневаюсь, что на базах размером в несколько сотен мегабайт вы сможете добиться ощутимых различий - легче памяти докупить и дисков побыстрее.
Впрочем, это все теория, а имея на руках рабочее приложение - не так сложно провести реальные тесты. Если проведете - выложите, будет интересно посмотреть.

xCrash 04.08.2010 17:54

Re: Выбор СУБД под Java сервер
 
я об оставил mysql и сделал промежуточный язык Hibernate для связи классов Java с таблицами базы данных sql.

Добавлено через 9 минут
Ramzessuss у тя раньше ник Diesel был?

DeForMator 04.08.2010 18:18

Re: Выбор СУБД под Java сервер
 
Нахватались модных слов, таких как Hibernate, и кричите тееерь на каждом шагу. А кто нибудь себе реально представляет что значит встроить его в сборку? И подумайте, чтобы вставить его более менее правильно, надо исходники hibernate вставить в исходники сервера. Кто из нас это может сделать правильно на 100%? Ответ - никто!. Хотя возможно тут и есть такие умники, котором от нечего делать захочется перекопать пол ядра, но для этого нужно писать на яве как на своём языке.

Кто из нормальных админов поставит сервак л2 на продукт от Microsoft? Тоже врядли кто-то решится. А на *NIX не идёт Microsoft SQL Server, за-то есть его аналог - PostgreSQL.

Кто нибудь использовал то что ниже IBM DB2? Опять же - это коммерческие, либо не предназначенные для таких целей СУБД.

Та же DB2 - очень тяжёлая как в работе, так и в понимании СУБД. Работает на оч. сильных серверах. Для л2 врядли подойдёт.

Выбор сужвется до:
Oracle Database - если у Вас сильная машина в плане оперативной памяти и процессора - это наилучший выбор!
PostgreSQL - аналог "Оракла", только бесплатный и менее требователен к ресурсам. Для сервера онлайн игры хорошо подходит.
MySQL - если у Вас слабая "машина", но Вы всё же хотите открыть собственный сервер L2 - эта СУБД для Вас, но я бы её только под сайт использовал. ИМХО она как была Web СУБД, ею и останется)

Либо делайте так:
MySQL + Hibernate + все статические таблицы в XML или CSV и машинку покрепче.

Удачи всем начинающим админам.

Blakkky 04.08.2010 18:19

Re: Выбор СУБД под Java сервер
 
Если с точки зрения разработчика вопрос (т.е. под какую СУБД писать), то вопрос очень странный. Есть вполне вменяемые патерны разработки и библиотеки (hybernate тот же самый), которые позволяют не зависить от типа СУБД и, без переписывания кода, менять драйвер базы и, соответственно, саму СУБД.

Если вопрос с точки зрения администратора, то он не очень корректный.
Если сервер "заточен" (т.е. запросы в него вшиты намертво) под какую-то конкретную СУБД, то о каком выборе вообще говорить можно?
Если же сервер написан нормально и позволяет менять СУБД, то для каких-либо рекомендаций очень мало данных.
Естественно, лучше всего использовать ORACLE, но использовать его тоже надо уметь (это выделенный мощный сервер, а еще лучше кластер (именно в таких условиях оракл обгоняет всех по производительности), это пряморукий админ, который знает как нужно настроить систему под эту СУБД, и это лицензия на несколько килобаксов). Но люди, у которых есть такие ресурсы вряд ли будут спрашивать на форуме что лучше, бесплатная маська или оракл.
Опять же, если машинных ресурсов достаточно, то и маська в режиме innodb даст супернадежность и производительность, и постгресс будет летать. Только зачем все это на 10 запросов в секунду и 200 онлайна?

Если речь идет о "домашнем сервере" с 200 онлайна, то хорошо настроенный mysql в режиме myisam вполне себе будет вменяемо работать.
Если сервер "по-серьезднее", то можно посмотреть в сторону postgresql (если, конечно, сервер с вписанными в код запросами в диалекте маськи с ним захочет общаться) или mysql в режиме innodb.
На что-либо другое вообще особо нету смысла смотреть в реалях ЛА2.

SQLite, Sybase, Interbase - это вообще безсерверная болезнь, в которой можно хранить бухотчеты маленькой компании на флешке.
Oracle, IBM DB2, MSSQL - это монстры масштаба enterprise, которые интересны только при миллионах транзакций и много-терабайтных базах.
MySQL, PostgreSQL, Firebird - это субд общезадачные, оптимизированные под определенные операции (mysql в решиме myisam, например, обгоняет на средних нагрузках всех на простых операциях (select/insert/update) с одной таблицей, postgresql интересен, если нужна полноценная современная СУБД с транзакциями, триггерами, хранимыми процедурами и т.д., под среднюю нагрузку, без особых претензий на производительность, но с хорошим запасом прочности).

PS: Есть реальный пример, когда mysql в режиме myisam которую тюнили несколько месяцев под конкретную задачу, с настроенной репликацией для надежности, на выделенной машине в 8 ядрами и 32Гб оперы переваривала 15-20 тысяч запросов в секунду (база биллинга интернет-провайдера) в штатном режиме. Так что вопрос не в том какую субд использовать, а в том с какой субд умеешь общаться "как с другом".

Ramzessuss 04.08.2010 18:19

Re: Выбор СУБД под Java сервер
 
Цитата:

Сообщение от xCrash (Сообщение 82174)
я об оставил mysql и сделал промежуточный язык Hibernate для связи классов Java с таблицами базы данных sql.

Добавлено через 9 минут
Ramzessuss у тя раньше ник Diesel был?

У меня сервер L2Diesel.ru был) А ника нет, не было.:)


Текущее время: 09:39. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd. Перевод: zCarot