Opik
Новичок
База или кеширование?
Здравствуйте!
У меня опять возник вопрос по производительности.
Как сделано сейчас:
В функции инициализации, данные из таблицы считываются в массив и кешируются через мемкеш (Если данные уже в кеше есть, то повторно данные не считываются).
Допустим имеем страницу - инвентарь персонажа в игре, где нужно вывести все вещи персонажа, которые лежат естессно в инвентаре и описанием(характиристики и прочее) вещи (что хранится в кеше).
И в тоге примерно такое:
всё бы вроде ничего, но решил провести тесты и сравнить результат с обычным селектом. т.е с:
Записал использование памяти и времени выполнения, вот что вышло:
а) увеличении посетителей.
б) каких либо ещё факторов
?
Здравствуйте!
У меня опять возник вопрос по производительности.
Как сделано сейчас:
В функции инициализации, данные из таблицы считываются в массив и кешируются через мемкеш (Если данные уже в кеше есть, то повторно данные не считываются).
Допустим имеем страницу - инвентарь персонажа в игре, где нужно вывести все вещи персонажа, которые лежат естессно в инвентаре и описанием(характиристики и прочее) вещи (что хранится в кеше).
И в тоге примерно такое:
PHP:
$query = mysql_query("SELECT * FROM equip WHERE owner = CHAR_ID");
while($row = mysql_fetch_assoc($query))
{
$item = getItem($row['itemId']);
$item['cond'] = $row['cond']; // и ещё парочка свойств по анологии
$items[] = $this->parseItem($item);
}
PHP:
$query = mysql_query("SELECT * FROM equip AS e
LEFT JOIN Item AS i ON(e.itemId = i.itemId)
WHERE owner = CHAR_ID");
while($row = mysql_fetch_assoc($query))
{
$items[] = $this->parseItem($row);
}
Т.е получается, что делая запрос с лефт джойн выигрываем и в скорости и в свободной памяти. Не будет ли грабель если передаю на 2 вариант (сложный запрос), при:sql:
Memory usage: 379992; action time: 0.037323; repeat: 1
Memory usage: 379992; action time: 0.119010; repeat: 10
Memory usage: 379992; action time: 0.233884; repeat: 20
mem:
Memory usage: 1338808; action time: 0.024803; repeat: 1
Memory usage: 1375400; action time: 0.286832; repeat: 10
Memory usage: 1375400; action time: 0.618568; repeat: 20
а) увеличении посетителей.
б) каких либо ещё факторов
?
