| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > Массив или база? |
| Автор: godsgame 24.9.2005, 11:07 |
| Итак делаю логи боев для онлайн игры. файл со всеми вариантами логов занимает 40кб! как мне лучше делать в игре: 1) загнать все в массив a[1] = "aaa...."; a[2] = "bbb....'; .... Потом рандомно выбирать один из них и заносить в базу ИЛИ 2) занести все эти шаблоны в базу: id, logTemplate 1 aaa.... 2 bbb.... 3 ccc... и каждый раз генерить число и выбирать соответствующий шаблон из базы итак выводы: 1) +: не нагружает базу, работает я думаю быстрее минусы: каждый раз при обновлении боя грузится массив на 40кб! 2) +: файл боя весит на 40кб меньше! -: дополнительные 15 запросов в базу (на странице 15 сообщений) (SELECT * FROM `logsTemp` WHERE id=123') +ко всему этого: есть отдельный модуль для просмотра логов: 15 штук на странице (все выше написаное касалось непосредственно боя). Т.е хорошо бы учесть что люди будут просматривать завершенные логи... Посоветуйте какоей вариант будет работать быстрее А ГЛАВНОЕ - создаст меньшую нагрузку на дохлый сервер. (можно предложить свой вариант) |
| Автор: Bikutoru 25.9.2005, 10:41 | ||||||||
А заменить запросы типа
на
нельзя? Такие запросы (WHERE id IN (...)) выполняться будут достаточно быстро...
Вот это не понял... |
| Автор: godsgame 25.9.2005, 16:37 | ||||
| Bikutoru хммм... а что значит IN? думаю:
будет лучший вариант
просто если делать массивом, то соответственно в бою будет так: $a[1] = "takoj-to porazil takogo-to"; $a[2] = "takoj-to porazil takogo-to"; ... т.к файл с шаблонами этих логов занимает около 40кб, то соответственно при добавлении всех этих логов в массив $a - размер файла боя увеличится минимум на 40кб... И еще такой вопрос: после выполнения SELECT * FROM `logsTemp` WHERE id IN (123, 133, 145, 145, 678, ...)) x 1 штука результат можно занести в ассоциативный массив? |
| Автор: AntonioBanderaz 25.9.2005, 23:59 | ||||
Да конечно можно.
|