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

Откуда: г. Кишинёв, Республика Молдова
Сообщений: 3148
Блог
AcTiViSioN911
Взял за образец. Команда выполнилась 2 раза, разными способами.
<...>
И что мне это дало?
Почитайте про SQL injection: раз, два
26 ноя 14, 09:05    [16905929]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
AcTiViSioN911
Member

Откуда:
Сообщений: 35
Basil A. Sidorov,

А как быть с тысячью клиентов? У каждого должна быть своя таблица, а клиентов будет не одна тысяча, имею ввиду именно онлайн.
26 ноя 14, 13:20    [16907564]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
Dimitry Sibiryakov
Member

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

AcTiViSioN911
У каждого должна быть своя таблица

Кому должна?..

Posted via ActualForum NNTP Server 1.5

26 ноя 14, 13:36    [16907695]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
AcTiViSioN911
Member

Откуда:
Сообщений: 35
Dimitry Sibiryakov,

Ладно, может я не знаю всех особенностей СУБД. У каждого клиента будет от 200 и более параметров (начиная от логина/пароля и т.д.). Можно ли сделать все это в одной таблице, не потеряв в скорости чтения/записи?
26 ноя 14, 13:48    [16907782]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
AcTiViSioN911
Member

Откуда:
Сообщений: 35
Dimitry Sibiryakov,

Так же добавлю, что на сервере по таймеру (каждую минуту) для игроков в онлайне будут обновляться некоторые данные, в этой же таблице.
26 ноя 14, 13:58    [16907868]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
AcTiViSioN911
Ладно, может я не знаю всех особенностей СУБД.

Ладно
AcTiViSioN911
У каждого клиента будет от 200 и более параметров (начиная от логина/пароля и т.д.). Можно ли сделать все это в одной таблице, не потеряв в скорости чтения/записи?

Чего не нужно делать точно, так это создавать по таблице на клиента.
А вот будет ли таблица для параметров именно одна - это другой вопрос. М.б. их 2 будет, а м.б. 19.
26 ноя 14, 14:05    [16907927]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
AcTiViSioN911
Так же добавлю, что на сервере по таймеру (каждую минуту) для игроков в онлайне будут обновляться некоторые данные, в этой же таблице.

Звучит как не очень хорошая идея. Не лучше ли менять данные по мере из фактического изменения?

Игрок А стоит и афкает в тюрьме 329485 минут.
Игрок Б только что приобрёл Сияющее Копьё Разгневанного Школьника.

Неужели для них одинаково количество поводов писать что-либо в базу?

IMHO, вам, AcTiViSioN911, весь этот разговор нужно отложить и заняться изучением проектирования.
26 ноя 14, 14:13    [16907985]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
AcTiViSioN911
Member

Откуда:
Сообщений: 35
Зайцев Фёдор,

Так вот я сейчас и нахожусь на этой стадии. Мне необходимо знать максимальные размеры у таблиц, чтобы грамотно распределить данные. Таблицы для каждого пользователя - это я конечно загнул, меня просто интересует вопрос производительности. Какой предел параметров (столбцов) установить на каждую таблицу (100, 200 ... ), если брать в расчет запись и чтение каждую минуту для 1000 игроков. Хотелось бы грамотно их распределить.

По поводу записей в таблицы. Пусть у игрока сейчас 1000 ед. какого-либо ресурса, а через 15 минут он захочет потратить 500 ед. Получается, что через 15 минут к его кредитам на счету добавятся еще 150 (по 10 в минуту), после чего будет списана сама стоимость покупки, за которой последует запись в таблицу (650). Как я думаю, это неплохая схема. Все остальные вычисления (как прибавляется по 10 ед. в минуту) будут происходить у клиента.
26 ноя 14, 15:10    [16908547]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
AcTiViSioN911
Member

Откуда:
Сообщений: 35
Зайцев Фёдор,

Так же добавлю, что при каждой авторизации игрока, это числа (например ресурсы) будут перезаписаны сервером, в одной они таблице или в нескольких.
26 ноя 14, 15:13    [16908574]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
SergSuper
Member

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

извиняюсь, а Вы что-нибудь на эту тему читали?
26 ноя 14, 15:28    [16908701]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
Зайцев Фёдор
Member

Откуда: Лужки
Сообщений: 5308
AcTiViSioN911
Так же добавлю, что ...

Текущее обсуждение несколько вышло за рамки раздела и топика.

Могу добавить только, что на данном этапе разработки можно использовать любую СУБД.
Момент, при котором вы столкнётесь с проблемами масштабирования и производительности не наступит в обозримом будущем - намного раньше придётся бороться с ошибками проектирования.
Мне так кажется.
26 ноя 14, 15:29    [16908716]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67462
Блог
AcTiViSioN911
Как я думаю, это неплохая схема.

Первое же отключение электричества заставит в этом усомниться.
26 ноя 14, 15:30    [16908726]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
Dimitry Sibiryakov
Member

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

AcTiViSioN911
при каждой авторизации игрока, это числа (например ресурсы) будут
перезаписаны сервером

При такой архитектуре СУБД не только не нужна, но и вообще противопоказана.

Posted via ActualForum NNTP Server 1.5

26 ноя 14, 15:38    [16908807]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 28355
ИМХО элементарный анализ данных не проведён, а уже какой-то код написан, какая-то архитектура придумана.

1. Новый пользователь, какие у него в начале данные, какого объёма, как быстро они изменяются?
2. Пользователь плотно играет в игрушку год, какие у него в итоге данные, какого объёма?
3. Пользователь играет в течение года, но редко, какие у него в итоге данные, какого объёма?

Ну и по каждому пользователю проанализировать частоту обращений и характер обращений к серверу. Как это зависит от геймплея?
26 ноя 14, 15:59    [16909013]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
AcTiViSioN911
Member

Откуда:
Сообщений: 35
SergSuper,
Да, я знаю как распределить данные чтобы получить более-менее адекватную БД, а все остальное придет с опытом.

softwarer,
В каком смысле? Данные из БД сотрутся? Быть может я недостаточно точно выразился.
Число 1000 (как любой другой ресурс игрока) было записано 26.11.2014 в 12:00. И не важно когда произойдет их изменение (через 15 минут или 2 недели) - накапавшие за пройденное время ресурсы (скажем, 10 ед. в минуту) так или иначе добавятся к общему числу, когда это будет необходимо (авторизация клиента или совершение покупки).

Dimitry Sibiryakov,
Тогда где же мне хранить данные клиентов? Всего-то нужно иметь возможность быстро считывать и записывать строки.
26 ноя 14, 16:02    [16909044]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
AcTiViSioN911
Member

Откуда:
Сообщений: 35
skyANA
ИМХО элементарный анализ данных не проведён, а уже какой-то код написан, какая-то архитектура придумана.

1. Новый пользователь, какие у него в начале данные, какого объёма, как быстро они изменяются?
2. Пользователь плотно играет в игрушку год, какие у него в итоге данные, какого объёма?
3. Пользователь играет в течение года, но редко, какие у него в итоге данные, какого объёма?

Ну и по каждому пользователю проанализировать частоту обращений и характер обращений к серверу. Как это зависит от геймплея?


Новый пользователь будет иметь все те-же таблицы что и плотно играющий 10 лет игрок. Разве что заполнены строки будут не числами а нулями/пустотой (как там позволяет БД). Игровые возможности уже практически расписаны, вскоре можно будет создавать, собственно, таблицы. Сейчас у меня готово то - регистрация\авторизация и некоторые стандартные таблицы.
Если исходить из расчета, что у каждого игрока не будет своей таблицы, то тут даже проще - не было у человека автомобиля - и строки в таблице "Автомобили" нет. А как появился - так сразу новая запись.
26 ноя 14, 16:10    [16909116]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
Dimitry Sibiryakov
Member

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

AcTiViSioN911
Тогда где же мне хранить данные клиентов? Всего-то нужно иметь
возможность быстро считывать и записывать строки.

В файле. А файл - в файловой системе.
Ты эта... определись: записывать строки или полное состояние персонажа по таймеру.
Впрочем, от этого всего лишь зависит с какими флагами открывать этот файл...

Posted via ActualForum NNTP Server 1.5

26 ноя 14, 17:54    [16909820]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709
[AcTiViSioN911]Здравствуйте!
До недавнего времени мой сервер на C# работал с MySQL. Однако со временем я задумался о масштабах игры, а где-то вычитал что MySQL "не лучшим образом справляется с многочисленным чтением\записью в таблицы". Так вот, что же все таки выбрать в моем случае?

для хранения говноданных любая говносубд подойдет, даже MySQL.
тем более что без MyISAM таблиц, на одном только Inno он не так уж и плох.



Собственно, вот такие критерии:


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


1) Максимальная скорость чтения\записи, в основном данные 1/0 или небольшие строки, не более.
2) Наличие бесплатной версии (например комьюнити мускул), ну или хотя-бы с адекватной ценой
3) Наличие коннектора C# (только без танцев с бубном, VS-2013)


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

тут сразу спектр резко сокращается.

MySQL, fire bird, postgres.

рекомендую остаться на мускле, заменив все на innodb. проблемы производительности решать про мере их появления, а не надумывать их.
Оболочку для работы с БД я выбрал - Navicat Premium, очень удобная утилита. Однако, поддерживает она только MySQL, PostgreSQL, Oracle, SQLite и MariaDB. Если у вас будут предложения по другим СУБД, подскажите и оболочку т.к. с консолью возиться я не собираюсь.[/quot]
26 ноя 14, 19:08    [16910088]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709
Если у вас будут предложения по другим СУБД, подскажите и оболочку т.к. с консолью возиться я не собираюсь.[/quot]

а, это тогда тебе увольняться надо по проф непригодности.
26 ноя 14, 19:09    [16910094]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709
AcTiViSioN911
Dimitry Sibiryakov,

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



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

sqlserver замечательная СУБД и бесплатная версия у них есть.
26 ноя 14, 19:17    [16910121]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709
Вася Уткин,
C в Acid это не внешние ключи
26 ноя 14, 19:21    [16910140]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
Вася Уткин
Guest
MasterZiv
Вася Уткин,
C в Acid это не внешние ключи

А что это? Посмотрим, сумеете ли вы объяснить это автору топика короче и понятней, чем я :)

C в Acid - согласованность - включает в себя в том числе и внешние ключи (остальная часть (C)согласованности сильно пересекается с A и I, т.к. достигается за их счет и за счет корректности SQL-statement-ов в транзакции, написанных разработчиком).
26 ноя 14, 19:51    [16910271]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
AcTiViSioN911
Member

Откуда:
Сообщений: 35
MasterZiv,

Все же рекомендуете innodb вместо Aria (noACID)?
26 ноя 14, 19:51    [16910272]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709
AcTiViSioN911
Dimitry Sibiryakov,

Ладно, может я не знаю всех особенностей СУБД. У каждого клиента будет от 200 и более параметров (начиная от логина/пароля и т.д.). Можно ли сделать все это в одной таблице, не потеряв в скорости чтения/записи?


Не можно, а НУЖНО!
27 ноя 14, 19:05    [16915682]     Ответить | Цитировать Сообщить модератору
 Re: СУБД для браузерной MMOG (C#)  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709
AcTiViSioN911
MasterZiv,

Все же рекомендуете innodb вместо Aria (noACID)?


нет, не ACID я не буду рекомендовать никому. InnoDB или Maria.
27 ноя 14, 19:07    [16915687]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить