Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] оптимизация /catalog/model/catalog/category.php (Allowed memory size)


Recommended Posts

привет. мучаюсь с catalog/model/catalog/category.php. 

пишет Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 35 bytes) in /home/p/*убрал*/*убрал*/public_html/catalog/model/catalog/category.php on line 31   пишет на сервере, локально медленно, но проходит.

в нутри category.php есть такой запрос

 

 

SELECT * FROM " . DB_PREFIX . "category c
    LEFT JOIN " . DB_PREFIX . "category_description cd
    ON (c.category_id = cd.category_id)
    LEFT JOIN " . DB_PREFIX . "category_to_store c2s
    ON (c.category_id = c2s.category_id)
    WHERE
    cd.language_id = '" . (int)$this->config->get('config_language_id') . "'
    AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "'
    AND c.status = '1'
ORDER BY c.parent_id, c.sort_order, cd.name
 
если убрать ORDER BY c.parent_id, c.sort_order, cd.name, выполниться быстрее
делал что написано в
 
не помогло. 
 
суть такая, сначала извлекаются в php все категории а потом ведется работа с ними, а у меня из 16тыс с чем то.
о кэшировании я думал, но для этого надо что бы прошел хоть один запрос)) кстати, кэширования там нет, пришлось добавить:
 
$data = $this->cache->get('allCategories');
            
            if($data === null) {
                $query = $this->db->query("SELECT * FROM " . DB_PREFIX . "category c
    LEFT JOIN " . DB_PREFIX . "category_description cd
    ON (c.category_id = cd.category_id)
    LEFT JOIN " . DB_PREFIX . "category_to_store c2s
    ON (c.category_id = c2s.category_id)
    WHERE
    cd.language_id = '" . (int)$this->config->get('config_language_id') . "'
    AND c2s.store_id = '" . (int)$this->config->get('config_store_id') . "'
    AND c.status = '1'
                                            ");
                                            //ORDER BY c.parent_id, c.sort_order, cd.name
    
    foreach ($query->rows as $row) {
    $data['by_id'][$row['category_id']] = $row;
    $data['by_parent'][$row['parent_id']][] = $row;
    }
                
                $this->cache->set('allCategories', $data);
            }

 

вуду опенкарта, призываю вас помочь чем магете, совсем уж силушки закончились, спасибо

Надіслати
Поділитися на інших сайтах


Гість
Ця тема закрита для публікації повідомлень.

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.