|
|
|
| У меня установлен счётчик PowerCounter 2.9.0 в режиме, который считает страницы index.php и index.php?x=2 разными страницами.
И теперь, видимо, из за большого количества страниц он мне выдаёт ошибку в файле /counter/admin/enterpoint.php?id_page= (Точки входа и выхода):
Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 35 bytes) in /usr/home/academp/site/www.rprint.ru/counter/admin/enterpoint.php on line 121
ругается вот на этот цикл:
//Получаем массив с названиями, id и адресами страниц
$p_n=mysql_query("SELECT * FROM pages");
while ($p_names=mysql_fetch_array($p_n))
{
$names[($p_names['id_page'])]['name']=$p_names['name'];
$names[($p_names['id_page'])]['title']=$p_names['title'];
}
|
можно как-нибудь решить этот вопрос, кроме как чисткой базы? | |
|
|
|
|
|
|
|
для: Rprint-max
(08.02.2008 в 16:53)
| | нууу.. если в таблице более 3 столбцов (id_page, name и title), то зачем выбирать их все ("*")? имеет смысл оставить только те три, ибо я вижу, что только они используются в коде.. соотв-но освободится немного памяти
получим запрос "SELECT id_page, name, title FROM pages"
да и код в цикле while можно привести к виду
$names[$p_names['id_page']] = $p_names;
а вообще, то, что оно ругается на это место кода, совсем не значит, что проблема именно здесь.. тут памяти много не должно хаваться, если конечно число страниц разумное.. может память сожралась где то ДО этого места? | |
|
|
|
|
|
|
|
для: Rprint-max
(08.02.2008 в 16:53)
| | Объём таблиц большой?
1) Возможно вам имеет смысл уменьшить срок хранения актуальных данных.
2) А также повесить процесс архивации данных на cron, если в систему администрирования заглядываете не регулярно. | |
|
|
|