|
|
|
| У меня вопрос такго плана :
Возможно ли объекты хранить в оперативной памяти длительное время, а не только на краткое время выполнения скрипта ?!
То есть что б к объекту имели доступ и другие пользователи (в многопользовательской онлайновой игре).То есть я хочу в минимум свести работу с MYSQL, а что б всё в основном происходило в оперативной памити, и время от времени сохранялось в MYSQL но повторюсь, что все отсновные действия происходят в оперативной памяти.
Возможно ли такое в PHP5 или в более ранних версяих ?!
(Пожалуйсто не пишите рекомендательных постов обойтись без объектов :) ибо без них игра теряет в функциональсноти и навароченности =((( )
Спасибо за внимание. | |
|
|
|
|
|
|
|
для: Orlangur
(04.03.2005 в 21:32)
| | Это затруднительно, так как скрипты пользователей выполняются в различных потоках. Выходом может послужить использование временных таблиц http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=278 или таблиц типа HEAP http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=83 - они всегда хранятся в оперативной памяти. | |
|
|
|
|
|
|
|
для: cheops
(04.03.2005 в 23:20)
| | Спасибо, но что то я не до конца понял про HEAP таблицы.Вроде бы это то что мне надо, но как с ними работать !? | |
|
|
|
|
|
|
|
для: cheops
(04.03.2005 в 23:20)
| | Как они создаються в оперативной памяти, как получить к ним доступ, и как долговременно хранить в них обьекты ?! (И нужно ли при этом их Сериализировать и Унсериализировать) !? | |
|
|
|
|
|
|
|
для: Orlangur
(05.03.2005 в 00:37)
| | С ними следует работать как с обычными таблицами - осуществлять соединение с базой данных, запросы и получать ответы. Просто при создании таблицы в конце следует указать тип таблицы TYPE=HEAP, а не TYPE=MyISAM
CREATE TABLE forums (
id_forum int(6) NOT NULL auto_increment,
name mediumtext NOT NULL,
rule mediumtext NOT NULL,
logo mediumtext NOT NULL,
pos int(6) NOT NULL default '0',
hide enum('show','hide') NOT NULL default 'show',
PRIMARY KEY (id_forum)
) TYPE=HEAP;
|
MySQL гарантирует, что данная таблица будет в оперативной памяти и все операции будут проходить быстрее, чем с обычной таблицей, т.е. сбой в работе сервера приведёт к полной потере информации. Если информация важна время от времени её следует сохранять в обыную таблицу на диск. | |
|
|
|
|
|
|
|
для: cheops
(05.03.2005 в 07:25)
| | Спасибо большое,Cheops.В общем я поянл, что то что я хотел от обьектов не делаеться по средствами PHP.
Прийдёться просто с бахой тогда работать .
Ну и как следсвие возникает другой вопрос :
На скольо трудоёмка операция serializa() и unserialize !? Много ли ресурсов трубуеться от сервеар при постонной сериализаии и унсереиалзиции обьектов !?
Или не стоит ?! А останеться работать просто с большим количеством полей в MYSQL !? Как бы вы посоветовали ?! | |
|
|
|
|
|
|
|
для: Orlangur
(05.03.2005 в 14:54)
| | serializa() и unserialize() не очень ёмкие (по идеи должны быть такими), так как операцию сериализации специально применяют, чтобы разгрузить и программиста, которому не нужно обрабатывать каждый закоулок объекта и машину, так как она делает просто слепок, а не дёргает каждый элемент. Здесь всё-равно лимитировать база данных будет, она всё-равно будет делать много пассов - поэтому я бы посоветовал использовать сериализацию. | |
|
|
|
|
|
|
|
для: cheops
(05.03.2005 в 21:04)
| | Большое спасибо ! Приму к сведению ! Благодарю за всю оказанную мне помощь ! | |
|
|
|