Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Нагрузка на базу или на скрипт?
Форумы портала PHP.SU » PHP » Программирование на PHP » Нагрузка на базу или на скрипт?

Страниц (1): [1]
 

1. valenok - 23 Ноября, 2006 - 11:38:32 - перейти к сообщению
Отредактированно автором.
Смотри ниже.
2. f0rm4t - 23 Ноября, 2006 - 17:26:40 - перейти к сообщению
Привет =)
На сколько я помню, рекомендуется делать упор на БД.
3. valenok - 23 Ноября, 2006 - 18:15:04 - перейти к сообщению
Смотрите ниже
4. f0rm4t - 23 Ноября, 2006 - 18:51:41 - перейти к сообщению
Apache+PHP скушают больше ресурсов, нежели один демон MySQL. Это еще один плюс метода "упор_на_бд" Подмигивание
5. valenok - 23 Ноября, 2006 - 19:27:47 - перейти к сообщению
Скрипт сам по себе очень большой и требует больших системных ресурсов.
Вопрос был в том, что эффективней,

ставить в базе 10 колонок
в скрипте цикл прогонять 10 раз

или в базе 5 колонок
цикл прогонять 5 раз, но в цикле добавить нечто вроде
$var1 = $var{0}; $var2 = $var{1};

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

--

Сам скрипт это чтото вроде того что у пользователя есть 5 букв, каждой буквы есть определённое количество, ему надо составить слова из этих букв. Если он использует букву, количество этой буквы спускается, а когда он использует все буквы "А" то а таблице колонка отведённая под букву А опусташается.

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

Объём информации в базе остаётся тем же не взирая на количество стобцов.

Букв всего 5.
Макс. количество одной буквы это 999 999

Всмысле при максимальных значениях в базе будут находиться следующие значения:

999999А
999999Б
999999В
999999Г
999999Д

хотя тогда просто способ $var1 = $var{0}; $var2 = $var{1};
не подходит. Парсинг так же будет сложней
6. valenok - 24 Ноября, 2006 - 15:11:26 - перейти к сообщению


А теперь попробую изложить проблему по другому для того чтобы получить однозначный ответ

Скрипт работает паралельно на 1000 компьютерах.
В базе 500 000 строк.
Как по вашему должна выглядеть база и кусок скрипта который будет брать из базы
набор букв и их количество.

В каждой строке в базе дожны находиться пять определённых букв, в нашем случае это А, Б, В, Г и Д
Теперь каждому ползователю скрипта принадлежит одна строка в базе, к примеру с индетификатором ID = 217259, который хранится в сессии.

Пользователь использует букву А, и в базе списывается количество букв А для этого пользователя на одну единицу.

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

Заранее благодарю.
7. f0rm4t - 24 Ноября, 2006 - 15:39:57 - перейти к сообщению
1. Скрипт выполняется на 1к компьютерах, или используют 1к копий запущенных на одном сервере?
2. Я не знаю такой игры, но все таки советую использовать БД.
3. Значения в БД будут изменяться часто?
8. valenok - 24 Ноября, 2006 - 16:00:02 - перейти к сообщению
1.Да.
2. Я не виноват =) Как построить таблицу?
3. Очень 1000 UPDATE'ов & 1000 SELECT'ов в минуту.

Написав пункт 3 - тоже решил что стоит нагружать базу.
её максимальный размер будет

6-ти значный идентификатор строки / пользователя
5 букв
5 шестизначных цифр означающих количество той или иной буквы

Тоесть при макс. значениях, в базе будут записанны

6+5+6*5 = 41 байт на строку
500 000 строк = 20500 кб = 20 мб
Так?


И всё же вопрос: как следует делать таблицу? Как она должны выглядеть для того чтобы можно было достичь эффективнейшего исполнения скрипта.


 

Powered by ExBB FM 1.0 RC1