Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Объекты
 
 автор: Orlangur   (04.03.2005 в 21:32)   письмо автору
 
 

У меня вопрос такго плана :
Возможно ли объекты хранить в оперативной памяти длительное время, а не только на краткое время выполнения скрипта ?!
То есть что б к объекту имели доступ и другие пользователи (в многопользовательской онлайновой игре).То есть я хочу в минимум свести работу с MYSQL, а что б всё в основном происходило в оперативной памити, и время от времени сохранялось в MYSQL но повторюсь, что все отсновные действия происходят в оперативной памяти.
Возможно ли такое в PHP5 или в более ранних версяих ?!
(Пожалуйсто не пишите рекомендательных постов обойтись без объектов :) ибо без них игра теряет в функциональсноти и навароченности =((( )
Спасибо за внимание.

   
 
 автор: cheops   (04.03.2005 в 23:20)   письмо автору
 
   для: 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 - они всегда хранятся в оперативной памяти.

   
 
 автор: Orlangur   (05.03.2005 в 00:20)   письмо автору
 
   для: cheops   (04.03.2005 в 23:20)
 

Спасибо, но что то я не до конца понял про HEAP таблицы.Вроде бы это то что мне надо, но как с ними работать !?

   
 
 автор: Orlangur   (05.03.2005 в 00:37)   письмо автору
 
   для: cheops   (04.03.2005 в 23:20)
 

Как они создаються в оперативной памяти, как получить к ним доступ, и как долговременно хранить в них обьекты ?! (И нужно ли при этом их Сериализировать и Унсериализировать) !?

   
 
 автор: cheops   (05.03.2005 в 07:25)   письмо автору
 
   для: 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 гарантирует, что данная таблица будет в оперативной памяти и все операции будут проходить быстрее, чем с обычной таблицей, т.е. сбой в работе сервера приведёт к полной потере информации. Если информация важна время от времени её следует сохранять в обыную таблицу на диск.

   
 
 автор: Orlangur   (05.03.2005 в 14:54)   письмо автору
 
   для: cheops   (05.03.2005 в 07:25)
 

Спасибо большое,Cheops.В общем я поянл, что то что я хотел от обьектов не делаеться по средствами PHP.
Прийдёться просто с бахой тогда работать .
Ну и как следсвие возникает другой вопрос :
На скольо трудоёмка операция serializa() и unserialize !? Много ли ресурсов трубуеться от сервеар при постонной сериализаии и унсереиалзиции обьектов !?
Или не стоит ?! А останеться работать просто с большим количеством полей в MYSQL !? Как бы вы посоветовали ?!

   
 
 автор: cheops   (05.03.2005 в 21:04)   письмо автору
 
   для: Orlangur   (05.03.2005 в 14:54)
 

serializa() и unserialize() не очень ёмкие (по идеи должны быть такими), так как операцию сериализации специально применяют, чтобы разгрузить и программиста, которому не нужно обрабатывать каждый закоулок объекта и машину, так как она делает просто слепок, а не дёргает каждый элемент. Здесь всё-равно лимитировать база данных будет, она всё-равно будет делать много пассов - поэтому я бы посоветовал использовать сериализацию.

   
 
 автор: Orlangur   (05.03.2005 в 21:52)   письмо автору
 
   для: cheops   (05.03.2005 в 21:04)
 

Большое спасибо ! Приму к сведению ! Благодарю за всю оказанную мне помощь !

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования