Russian TYPO3 community Форум больше не используется. Присоединяйтесь к каналу #community-ru в Slack for TYPO3 community  

Вернуться   Russian TYPO3 community > Обсуждение общих технических вопросов > Общие вопросы

Ответ
 
Опции темы Опции просмотра
Старый 06.05.2011, 09:49   #1
semender
Senior Member
 
Аватар для semender
 
Регистрация: 06.08.2010
Адрес: Makhachkala
Сообщений: 142
Отправить сообщение для semender с помощью ICQ Отправить сообщение для semender с помощью Skype™
Lightbulb Советы по оптимизации работы tt_news.

К сожалению tt_news генерирует страницы слишком долго при большом количестве новостей из-за большого числа запросов к БД, из-за проверки неиспользуемых условий....Довольно трудно разобраться во всех этих дебрях одному...Как вы с этим боритесь,свои подходы, методы борьбы, оригинальные идеи?
Вложения
Тип файла: pdf tt_news_profiling.pdf (163.5 Кб, 15 просмотров)
__________________
Я чертовски люблю слушать ложь, смотря в глаза... особенно когда знаю правду... И никогда не вру людям,которых называю друзьями...
semender вне форума   Ответить с цитированием
Старый 08.05.2011, 13:32   #2
dmartynenko
Senior Member
 
Аватар для dmartynenko
 
Регистрация: 20.07.2007
Адрес: Беларусь, Минск
Сообщений: 957
Отправить сообщение для dmartynenko с помощью ICQ
По умолчанию

Универсальность tt_news и следование TYPO3-way практике разработки ведут к неэффективности SQL запросов.

У меня на сервере лог медленных запросов на 95% состоит из запросов tt_news. Пример двух последовательных запросов. Они по определению не могут быстрыми. И результат на лицо - второй запрос выполняется 0.5 секунды выбирая при этом всего 7 записей.

Железо очень быстрое, сайт довольно нагруженный - днем, по статистике, mysql обрабатывает около 1000 запросов заждую секунду.
В tt_news чуть больше 10 тыс. записей новостей и 30 записей категорий.

Код:
***** 17-03-2011 18:05:11
***** TIME = 58.828 ms
SELECT COUNT(DISTINCT tt_news.uid)
	FROM tt_news LEFT OUTER JOIN tt_news_cat_mm ON tt_news.uid = tt_news_cat_mm.uid_local
	WHERE
		1=1  
		AND (tt_news_cat_mm.uid_foreign IN (1,32,21,25,7,11,55)) 
		AND tt_news.uid NOT IN (9146) 
		AND tt_news.sys_language_uid IN (0,-1) 
		AND tt_news.pid > 0  
		AND tt_news.uid NOT IN (9146) 
		AND tt_news.pid IN (85,86,87,88,137,369,520) 
		AND tt_news.deleted=0 
		AND tt_news.t3ver_state!=1 
		AND tt_news.hidden=0 
		AND (tt_news.starttime<=1300377910) 
		AND (tt_news.endtime=0 
			OR tt_news.endtime>1300377910) 
		AND (tt_news.fe_group='' 
			OR tt_news.fe_group IS NULL 
			OR tt_news.fe_group='0' 
			OR (tt_news.fe_group LIKE '%,0,%' 
			OR tt_news.fe_group LIKE '0,%' 
			OR tt_news.fe_group LIKE '%,0' 
			OR tt_news.fe_group='0') 
			OR (tt_news.fe_group LIKE '%,-2,%' 
			OR tt_news.fe_group LIKE '-2,%' 
			OR tt_news.fe_group LIKE '%,-2' 
			OR tt_news.fe_group='-2') 
			OR (tt_news.fe_group LIKE '%,3,%' 
			OR tt_news.fe_group LIKE '3,%' 
			OR tt_news.fe_group LIKE '%,3' 
			OR tt_news.fe_group='3') 
			OR (tt_news.fe_group LIKE '%,6,%' 
			OR tt_news.fe_group LIKE '6,%' 
			OR tt_news.fe_group LIKE '%,6' 
			OR tt_news.fe_group='6') 
			OR (tt_news.fe_group LIKE '%,7,%' 
			OR tt_news.fe_group LIKE '7,%' 
			OR tt_news.fe_group LIKE '%,7' 
			OR tt_news.fe_group='7') 
			OR (tt_news.fe_group LIKE '%,9,%' 
			OR tt_news.fe_group LIKE '9,%' 
			OR tt_news.fe_group LIKE '%,9' 
			OR tt_news.fe_group='9'))

****** 17-03-2011 18:05:11
****** TIME = 500.765ms
SELECT DISTINCT tt_news.uid, tt_news.*
	FROM tt_news LEFT OUTER JOIN tt_news_cat_mm ON tt_news.uid = tt_news_cat_mm.uid_local
	WHERE
		1=1  
		AND (tt_news_cat_mm.uid_foreign IN (1,32,21,25,7,11,55)) 
		AND tt_news.uid NOT IN (9146) 
		AND tt_news.sys_language_uid IN (0,-1) 
		AND tt_news.pid > 0  
		AND tt_news.uid NOT IN (9146) 
		AND tt_news.pid IN (85,86,87,88,137,369,520) 
		AND tt_news.deleted=0 
		AND tt_news.t3ver_state!=1 
		AND tt_news.hidden=0 
		AND (tt_news.starttime<=1300377910) 
		AND (tt_news.endtime=0 
			OR tt_news.endtime>1300377910) 
		AND (tt_news.fe_group='' 
			OR tt_news.fe_group IS NULL 
			OR tt_news.fe_group='0' 
			OR (tt_news.fe_group LIKE '%,0,%' 
			OR tt_news.fe_group LIKE '0,%' 
			OR tt_news.fe_group LIKE '%,0' 
			OR tt_news.fe_group='0') 
			OR (tt_news.fe_group LIKE '%,-2,%' 
			OR tt_news.fe_group LIKE '-2,%' 
			OR tt_news.fe_group LIKE '%,-2' 
			OR tt_news.fe_group='-2') 
			OR (tt_news.fe_group LIKE '%,3,%' 
			OR tt_news.fe_group LIKE '3,%' 
			OR tt_news.fe_group LIKE '%,3' 
			OR tt_news.fe_group='3') 
			OR (tt_news.fe_group LIKE '%,6,%' 
			OR tt_news.fe_group LIKE '6,%' 
			OR tt_news.fe_group LIKE '%,6' 
			OR tt_news.fe_group='6') 
			OR (tt_news.fe_group LIKE '%,7,%' 
			OR tt_news.fe_group LIKE '7,%' 
			OR tt_news.fe_group LIKE '%,7' 
			OR tt_news.fe_group='7') 
			OR (tt_news.fe_group LIKE '%,9,%' 
			OR tt_news.fe_group LIKE '9,%' 
			OR tt_news.fe_group LIKE '%,9' 
			OR tt_news.fe_group='9'))
	ORDER BY datetime DESC
	LIMIT 7
dmartynenko вне форума   Ответить с цитированием
Ответ

Теги
оптимизация, tt_news


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB code is Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Требуется веб-программист с опытом работы в TYPO3 anweb Работа и заказы / Job Offer and Request 0 25.10.2010 18:46
Оптимизация скорости работы сайта enot Общие вопросы 26 08.10.2007 12:00


Часовой пояс GMT +4, время: 05:06.


Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot

Хостинг и техническая поддержка: TYPO3 Лаборатория