![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Tutti |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 7.2.2008 Репутация: -1 Всего: нет |
Если написать онлайн шашки на PHP с использованием MySQL , т.е. каждый ход записывать в БД и проверять правильность хода на основе данных БД. Это будет сильно грузить сервер?
Это сообщение отредактировал(а) MoLeX - 8.2.2008, 10:24 |
|||
|
||||
GeneralElectric |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 797 Регистрация: 11.1.2008 Репутация: 13 Всего: 16 |
Непонятно, откуда возьмется нагрузка. У тебя игоки делают по несколько сот ходов в секунду?
И непонятно, зачем вообще ходы записывать в БД. Для истории? |
|||
|
||||
solenko |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 34 Всего: 67 |
Смотря как написать. Например, никто не заставляет каждый раз восстанавливать каждый раз все ходы от начала партии -- можно просто хранить сериализованный объект доски.
-------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
MoLeX |
|
|||
![]() Местный пингвин ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 4076 Регистрация: 17.5.2007 Репутация: 46 Всего: 140 |
хотя бы и для этого. все зависит от того сколько человек будет одновременно играть (хотя скорей всего так: сколько человек будет одновременно посылать данные) и как составишь БД. Добавлено через 1 минуту и 2 секунды да, тут лучше использовать связку PHP + MySQL (или файлы) + AJAX, т.к. людям точно не понравится постоянное обновление... -------------------- Amazing ![]() |
|||
|
||||
solenko |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 34 Всего: 67 |
GeneralElectric, нагрузка возмется от большого количества пользователей.
Ходы... записывать обязательно иначе грош цены такому сервису, который не дает проанализировать партию. -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
Tutti |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 7.2.2008 Репутация: -1 Всего: нет |
solenko, может канечно глупый вопрос, но что такое - сериализованный объект доски?
|
|||
|
||||
GeneralElectric |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 797 Регистрация: 11.1.2008 Репутация: 13 Всего: 16 |
solenko, База данных для меня лично ценна своей реляционностью. Возможностью построения связей.
какие связи можно построить между ходами разных партий, мне в голову не приходит. Как можно агрегировать эти данные или делать из них выборки - тоже. Да, и записывать надо каждый ход, конечно же, как только он сделан. В отдельную строчку в БД. Получится отличная таблица. А большое количество пользователей... ну-да, ну-да. как же я мог забыть. конечно. сервер упадет, не вопрос. Это сообщение отредактировал(а) GeneralElectric - 8.2.2008, 10:45 |
|||
|
||||
solenko |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 34 Всего: 67 |
GeneralElectric, бд не не объект фетиша, а инструмент длч хранения данных и манипуляции ими. И в идеале, она применяется по назначению а не для построения базы с огромным количеством зависимостей просто для того чтобы потом на схему любоваться.
Сервера баз данных для того и создаются чтобы управлять таблицами, количество строк в которых исчислятся миллионами. И, поверьте, они с этим справляются на ура. А запись каждого хода -- необходимость. Если вы прочитаете внимательнее мой прошлый пост, то заметите там причину. Это сообщение отредактировал(а) solenko - 8.2.2008, 10:55 -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
Tutti |
|
|||
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 7.2.2008 Репутация: -1 Всего: нет |
GeneralElectric, Как бы ты стал(а) решать такую задачу? Если после игры человек захочет посмотреть всу сделанные ходы.
|
|||
|
||||
GeneralElectric |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 797 Регистрация: 11.1.2008 Репутация: 13 Всего: 16 |
Скидывал бы ходы в файл. Ну, или писал их целиком в БД, в одну запись, по завершении партии.
solenko, не понимает одну вещь. Что хранение и запись - это противоположные задачи. И одновременно выполняться не могут. Да, сервера баз данных для того и создаются чтобы управлять таблицами, количество строк в которых исчислятся миллионами. вот только при управлении такой таблицей приходется выбирать, что мы будем делать с этой таблицей - записывать в неё, или делать выборки. Одновременно не получится. Применительно к озвученной задаче. Чтобы делать выборки из таблицы с миллионами строк, нужны индексы. Чтобы вставить одну строку в такую таблицу - надо перестроить весь индекс. Если делать вставки часто, то перестроение индексов просто положит всю базу. Следовательно, если делать частые вставки, то надо отказаться от индексов. Если отказываемся от индексов, то отказываемся от выборок. Если нам не нужны выборки, тогда непонятно, зачем нам вообще была нужна база данных Это сообщение отредактировал(а) GeneralElectric - 8.2.2008, 11:05 |
|||
|
||||
solenko |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 34 Всего: 67 |
Tutti, допустим все действия с доской выполняются неким классом Bord. Тогда каждая конкретная партия -- экземпляр данного класса, поля которого содержат всю необходимую информацию (положения фигур, чей ход и т.д.). Тогда, чтобы не восстанавливать это состояние из исходного, анализируя каждый ход, можно просто в базе хранить текущее состояние. В самом простом виде это запись в базу результата сериализации объекта
GeneralElectric, с каких пор и в каких субд операция записи блокирует таблицу целиком и тем более для чтения? -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
CyClon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 838 Регистрация: 3.12.2005 Репутация: 3 Всего: 4 |
PHP и MySQL конечно хорошо, но я плохо себе представляю, как это все будет выглядеть без JavaScript и, в частности, AJAX.
|
|||
|
||||
FractalizeR |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 273 Регистрация: 27.12.2007 Где: Россия/Москва Репутация: 2 Всего: 4 |
Я так понимаю, все это образно. Вставка строки в таблицу отнюдь не требует перестройки ВСЕГО индекса, иначе грошь ему цена такому индексу. -------------------- Чтобы поблагодарить или наоборот поругать участника форума лучше пользоваться значками "+" и "-", изменяющими репутацию. Они находятся слева от поста под именем пользователя. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |