Сильная нагрузка на базу данных
- Предыдущая
- 1
- 2
- Показаны 16-20 из 20
Включите отладку в настройках сайта. Тогда в футере будут выводиться sql запросы с временем выполнения и функцией, которая вызвала запрос.
Благодарю, не знал о такой функции.
Выяснил сто проблема с запросом в файле blog.class.php
* Получает посты по условиям
* @param bool $show_all
* @param obj $ownerModel
* @return array $posts
*/
public function getPosts
Но это универсальная функция, много где используется и отключить её нельзя.
Нашел файл который запрашивает эту функцию clubs/frontend.php
/////////////////////////////////////////////
//////////// ПОСТЫ БЛОГА КЛУБА //////////////
/////////////////////////////////////////////
Вы изначально пошли не по тому пути.
Вместо того, чтобы настраивать сервер mysql (etc/my.ini) и нормально настроить индексацию базы, Вы изменяете системные файлы движка, что делать нужно только в самом крайнем случае, иначе потом ни один академик в ваших правках кода не разберется.
Я же написал Вам в личку, чтобы прислали мне самые долгие запросы из дебага.
Вы личку не читаете?
Извините не увидал личку, отправил пример.
Временно решил проелему отключением вывода постов из блогов клубов на стену клуба.
Тормозит именно вот этот запрос, если его убираю тормоз полностью пропадает, но тогда исчезает разбивка на страницы.
* Получает количество постов по условиям
* @param bool $show_all
* @return int
*/
public function getPostsCount($show_all = false){
$pub_where = ($show_all? '1=1': 'p.published = 1');
if(isset($this->owner)) { $pub_where .= " AND b.owner = '{$this->owner}'"; }
$sql = "SELECT 1
FROM cms_blog_posts p
INNER JOIN cms_blogs b ON b.id = p.blog_id
{$this->inDB->join}
WHERE {$pub_where}
{$this->inDB->where}
{$this->inDB->group_by}\n";
как решить проблему, пока непонятно.
- Предыдущая
- 1
- 2
- Показаны 16-20 из 20