garrix 0 Опубликовано: 16 мая 2022 Рассказать Опубликовано: 16 мая 2022 На сайте 10 млн новостей. Одна новость и комментарии к ней загружается быстро, но главная, страница категорий и редактирование новостей в админке не загружаются Вопрос, как ускорить загрузку? В каких файлах нужно сделать изменения? Как я понял, проблема в запросе SELECT COUNT, который и тормозит загрузку из-за большой БД В коде попробовал отключить подсчет новостей, поставив значение 300, но проблема осталась. Категории стали загружаться долго, но главная так и не открывается Вот этот код в файле show.short.php $count_all = $db->super_query( $sql_count ); if($news_found AND !$count_all['count']) { $db->query("ANALYZE TABLE `" . PREFIX . "_post`, `" . PREFIX . "_post_extras`"); $count_all = $db->super_query( $sql_count ); } $count_all = $count_all['count']; Менял на этот: // $count_all = $db->super_query( $sql_count ); if($news_found AND !$count_all['count']) { // $db->query("ANALYZE TABLE `" . PREFIX . "_post`, `" . PREFIX . "_post_extras`"); // $count_all = $db->super_query( $sql_count ); } // $count_all = $count_all['count']; $count_all = 300; Этим изменением удалось добиться загрузки страниц категорий Также я заменил пагинацию на ajax подгрузку Может стоит еще смотреть в сторону allow_main? VDS у меня 2 ядра, 4 ГБ памяти Цитата Ссылка на сообщение Поделиться на других сайтах
crafic 32 Опубликовано: 17 мая 2022 Рассказать Опубликовано: 17 мая 2022 allow_main, fixed, where date<... - убрать Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 17 мая 2022 Рассказать Опубликовано: 17 мая 2022 17 минут назад, crafic сказал: allow_main, fixed, where date<... - убрать Чтобы не править файлы скрипта, нужно изучить настройки скрипта, благо все что касается быстродействия выведено в отдельную вкладку и отключить ненужное. Например публикацию на будущее время, и это уберет из запросов доп параметр даты и т.д. Цитата Ссылка на сообщение Поделиться на других сайтах
garrix 0 Опубликовано: 17 мая 2022 Рассказать Опубликовано: 17 мая 2022 Автор 4 минуты назад, celsoft сказал: Чтобы не править файлы скрипта, нужно изучить настройки скрипта, благо все что касается быстродействия выведено в отдельную вкладку и отключить ненужное. Например публикацию на будущее время, и это уберет из запросов доп параметр даты и т.д. Естественно все отключено по максимуму, но страницы категорий и главная не загружаются с ошибкой Internal Server Error Попробую в базе allow_main 1 оставить только у пары сотен новостей и убрать из запроса сортировку Как я понял, другого решения нет. Ни одна CMS не справляется с таким объемом. DLE единственная может быстро открывать страницы постов, только нужно разобраться с главной и категориями Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 17 мая 2022 Рассказать Опубликовано: 17 мая 2022 5 часов назад, garrix сказал: Естественно все отключено по максимуму, но страницы категорий и главная не загружаются с ошибкой Internal Server Error Я не удивлен, при том что вы указали 10 млн. новостей и данные своего сервера: 16.05.2022 в 19:21, garrix сказал: VDS у меня 2 ядра, 4 ГБ памяти Видимо вы память под свои данные, служебные ключи и прочее и прочее собираетесь брать из воздуха. 4 ГБ памяти это на все !!!! на работу OS, сотен процессов различного серверного ПО и т.д. Куда все все помещать будете? плюс два ядра на обработку данных, при условии что соседи ничего не выгребают с процессора. Ничего не берется из ниоткуда и не пропадают в никуда. Для 10 млн публикаций не то что о мощном отдельном тщательно оттюнингованном в плане серверных настроек нужно задумываться нужно, а возможно даже о кластере. А вы калькулятором такой обьем данных переварить собираетесь. 2 Цитата Ссылка на сообщение Поделиться на других сайтах
garrix 0 Опубликовано: 17 мая 2022 Рассказать Опубликовано: 17 мая 2022 (изменено) Автор 2 часа назад, celsoft сказал: Для 10 млн публикаций не то что о мощном отдельном тщательно оттюнингованном в плане серверных настроек нужно задумываться нужно, а возможно даже о кластере В этом и загвоздка, что на мощный сервер жалко тратить деньги. Вот у соседа моего нормально работает сайт с 8-9 миллионами новостей на слабеньком VDS. Как он это все настроил естественно не говорит. Обратил внимание, что в таблице dle_post у него нет столбца allow_main (do=stats выдает ошибку). Еще он использует кеширование, от Cloudflare вроде Уже писал, напишу еще раз, что страницы новостей (10 млн) и комментарии (15 млн) к ним подгружаются быстро, в отличии от Wordpress, Joomla, Processwire и др., перепробовал практически всё за 2 года. В этом есть очень большой успех 👍 Я же в верном направлении иду? Пагинацию заменил на ajax подгрузку, чтобы мой калькулятор не считал кол-во страниц. Убрал из запроса ORDER BY и главная загрузилась, уже лучше, но грузилась секунд 20. Еще напишу здесь, что в итоге получилось. Мне на главной и в категориях пока не так важно, как сортировать, главное чтобы хоть что-то было Изменено 17 мая 2022 пользователем garrix Цитата Ссылка на сообщение Поделиться на других сайтах
garrix 0 Опубликовано: 18 мая 2022 Рассказать Опубликовано: 18 мая 2022 Автор Как и обещал пишу, что получилось. Теперь все страницы открываются очень быстро, несмотря на мой калькулятор. Нужно было внести правки в файл show.short.php и engine.php В show.short.php отключить подсчет количества новостей ($count_all). А в engine.php нужно было убрать сортировку из запроса к базе (ORDER BY) Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 094 Опубликовано: 18 мая 2022 Рассказать Опубликовано: 18 мая 2022 12 часов назад, garrix сказал: Я же в верном направлении иду? Пагинацию заменил на ajax подгрузку, чтобы мой калькулятор не считал кол-во страниц. Он их считает в любом случае. Если не править файлы скрипта. 12 часов назад, garrix сказал: Убрал из запроса ORDER BY Вы убрали сортировку, а значит порядок вывода будет не предсказуемым. Результаты будут меняться. Тут уж как MySQL решит и как ему удобней. Цитата Ссылка на сообщение Поделиться на других сайтах
Starking 0 Опубликовано: 23 июня 2022 Рассказать Опубликовано: 23 июня 2022 18.05.2022 в 09:32, garrix сказал: Как и обещал пишу, что получилось. Теперь все страницы открываются очень быстро, несмотря на мой калькулятор. Нужно было внести правки в файл show.short.php и engine.php В show.short.php отключить подсчет количества новостей ($count_all). А в engine.php нужно было убрать сортировку из запроса к базе (ORDER BY) Может проще вам тогда будет через Redis выполнить вашу задачу по улучшению в быстродействии вашего VDS. Рассудите сами, вы имеете достаточное количество ресурсов для размещения redis. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.