Пропустить

Оптимизация SQL-запросов

Вопросы без привязки к версии. Установлена авточистка (2 года).
Свернуть Развернуть Правила форума Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).

Сообщение Pr0fi » 26.11.2007 12:42

Strenger писал(а):Объясни, пожалуйста, как именно файл использовать?

Кидаешь файл в папку db и подключаешь его в includes/db.php
Но это при условии что это тебе нужно, у тебя пятый php и сервер mysql с поддержкой mysqli
Strenger писал(а):у нас двойной VPS

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

В чистом phpbb все запросы очень неплохо оптимизированы. Вот с модами дела обстоят значительно хуже.

Pr0fi
phpBB 1.2.0
 
Сообщения: 18
Зарегистрирован: 29.01.2007 2:58
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Jovani » 16.01.2008 10:32

Pr0fi писал(а):В чистом phpbb все запросы очень неплохо оптимизированы.

Не согласен.
Для совместимости со старыми версиями MySQL, есть просто ужасные запросы.


Pr0fi писал(а):Вот с модами дела обстоят значительно хуже.

Есть такое ...
Из последних, пока помню, прикол с pafile_db ...

Файл:
pa_toplist.php

Запрос:

		$sql = 'SELECT file_time, file_id, file_catid
			FROM ' . PA_FILES_TABLE . "
			WHERE file_approved = '1'
			ORDER BY file_time DESC";


Нафига дёргать практически все записи?
Если максимум показа новых файлов за 30 дней ...
У меня из этого запроса возникла проблема, когда файлов порядка десяти тысяч.


В общем решил так ...
1. Добавил индекс по полю file_time.
CREATE INDEX file_time ON phpbb_pa_files (file_time);


2. Самое главное. Изменил вышеуказанный код на
$limit_time = (time()-(86400 * 30));


		$sql = 'SELECT file_time, file_id, file_catid
			FROM ' . PA_FILES_TABLE . "
			WHERE file_approved = '1'
			AND file_time > $limit_time
			ORDER BY file_time DESC";
Всегда есть решение ...

Jovani
phpBB 2.0.15
 
Сообщения: 496
Зарегистрирован: 28.04.2004 2:56
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Pr0fi » 18.01.2008 23:42

Jovani
ну вероятно ты делал тесты и выигрыш в производительности есть. Хотя лишняя сортировка, хоть и по индексу...
Я toplist кэшировал с периодом обновления в сутки, не вижу смысла обновлять чаще.
В pafile_db не понравилась слишком частая синхронизация. Вырезал её из скрипта и поставил на крон.

Pr0fi
phpBB 1.2.0
 
Сообщения: 18
Зарегистрирован: 29.01.2007 2:58
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Сообщение Jovani » 25.01.2008 8:51

Pr0fi писал(а):вероятно ты делал тесты и выигрыш в производительности есть

Существенный выигрыш. На моем старом тестовом компе, время этого запроса уменьшилось раз 100.
Всегда есть решение ...

Jovani
phpBB 2.0.15
 
Сообщения: 496
Зарегистрирован: 28.04.2004 2:56
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Оптимизация SQL-запросов

Сообщение DragonDX » 22.08.2008 20:42

Скажите, а оптимизация Attachment Mod актуальна для версии мода 2.4.5 ? Если да, то может кто-нибудь оформит эту идею в виде мода, а то не совсем понятно, что необходимо сделать.

DragonDX
 

Re: Оптимизация SQL-запросов

Сообщение Поручик » 22.08.2008 23:48

Aктyaльнa, нo тaм кaк paз вcё пoнятно, кaкoй eщё мoд нyжeн?
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
Аватара пользователя
Поручик
Former team member
 
Сообщения: 3988
Зарегистрирован: 12.05.2005 17:25
Откуда: Оренбург (Южный Урал)
Благодарил (а): 26 раз.
Поблагодарили: 50 раз.

Re: Оптимизация SQL-запросов

Сообщение DragonDX » 23.08.2008 0:39

Эм, т.е. вся оптимизация, это 2 sql запроса ? :D
ALTER TABLE `phpbb_attachments` DROP INDEX `attach_id_post_id`;
CREATE INDEX post_id_attach_id ON phpbb_attachments (post_id, attach_id);

DragonDX
 

Re: Оптимизация SQL-запросов

Сообщение Поручик » 23.08.2008 18:10

пpeдcтaвь ceбe, это вcя oптимизaция
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
Аватара пользователя
Поручик
Former team member
 
Сообщения: 3988
Зарегистрирован: 12.05.2005 17:25
Откуда: Оренбург (Южный Урал)
Благодарил (а): 26 раз.
Поблагодарили: 50 раз.

Re: Оптимизация SQL-запросов

Сообщение Miracle » 05.05.2009 13:30

Jovani писал(а):сэмулировал 200 активных посетителей в онлай

а как это можно сделать?

Miracle
phpBB 2.0.0
 
Сообщения: 100
Зарегистрирован: 04.01.2007 6:29
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Re: Оптимизация SQL-запросов

Сообщение Miracle » 13.05.2009 19:42

Видимо поздновато я подключился к данной теме, многие либо на пхпбб3 либо тема уже не актуальна.
Ребята, или я ошибаюсь, есть те кому интересно подумать и\или поделиться знаниями?!
Мне бы тоже было интересно рассказать что сделал уже я, однако либо специфика сервера либо мои кривые руки не дают мне понять на сколько все эффективно, но судя потому что часто возникает 502 и 504 ошибки дело дрянь.

Не знаю, может это настройки сервера, может форум а может и то и другое!

Вопрос номер 1.
Есть таблица юзеров 10000 чел, и есть таблица сессий скажем 2000 записей. Делаем совместную выборку данных (считаем JOIN) вот на моем сервере бывает выполняется запрос 0.00012 секунд а бывает и больше 20.

Понять до конца где же проблема не могу, потому как на сервере только моих 2а сайта с двумя форумами , те 4 отдельно живущие сущности.

Сделано следующее кеширование (говорю только для индекс страницы, так как хотелось бы решить проболемы с ней в первую очередь)
- конфиг табилицы (5 минут) можно и больше, меняется редко
- сообщений, посетителей и последний пользователь (5минут) тоже можно и больше ,меняется часто но не так важно
- посетителей онлайн, вся часть (1 минута) для каждого форума отдельно и для каждого уровня модераторов отдельно
- glance
- birth day
- список форумов, модераторов
- сессий пользователей 1 минута
- активные темы

- запретил лазить левым ботам
- разрешил яндексу кушать сайт с интервалом в 2 секунды

Хотелось бы сделать полный кеш без инклюдов и тд главной страницы для гостей, но что то не совсем понял как это правильно сделать

Miracle
phpBB 2.0.0
 
Сообщения: 100
Зарегистрирован: 04.01.2007 6:29
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Re: Оптимизация SQL-запросов

Сообщение Miracle » 14.05.2009 4:26

я в растеренности

[0] => UPDATE phpbb_users
SET user_session_time = 1242260433, user_session_page = 34
WHERE user_id = 4
[1] => 22.282692909241


Ночью! Когда юзеров до 20 штук

Miracle
phpBB 2.0.0
 
Сообщения: 100
Зарегистрирован: 04.01.2007 6:29
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Re: Оптимизация SQL-запросов

Сообщение nissin » 14.05.2009 9:00

SQL сервер у хостера явно перегружен запросами.
Всё повторяется. nurlan.info
Аватара пользователя
nissin
Поддержка
Поддержка
 
Сообщения: 1381
Зарегистрирован: 16.12.2007 15:01
Откуда: Павлодар
Благодарил (а): 1 раз.
Поблагодарили: 124 раз.

Re: Оптимизация SQL-запросов

Сообщение Miracle » 14.05.2009 11:49

ngins баловался
но тема актуальна

как закешировать для гостя целиком страницу?

Miracle
phpBB 2.0.0
 
Сообщения: 100
Зарегистрирован: 04.01.2007 6:29
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Re: Оптимизация SQL-запросов

Сообщение Поручик » 14.05.2009 18:51

Поищи по "кэширование запросов", тема ещё года три-четыре назад обсасывалась
Профессионал - тот же дилетант, только знающий, где ошибётся.
Генератор db_update.php для phpBB2 с некоторыми удобствами. Многие моды я беру или ищу здесь, здесь, тут
Все консультации только на форуме, приваты и стук в аську по таким вопросам игнорируются!
FAQ-phpBB3 | Ошибки новичков, или как не поссориться с модератором | Правила конференции

наш форум http://forum.aeroion.ru/cat1.html
Аватара пользователя
Поручик
Former team member
 
Сообщения: 3988
Зарегистрирован: 12.05.2005 17:25
Откуда: Оренбург (Южный Урал)
Благодарил (а): 26 раз.
Поблагодарили: 50 раз.

Re: Оптимизация SQL-запросов

Сообщение Miracle » 14.05.2009 19:13

Все что есть на форуме я вроде перечитал, эта самая интересная тема.

Miracle
phpBB 2.0.0
 
Сообщения: 100
Зарегистрирован: 04.01.2007 6:29
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.

Пред.След.

Вернуться в phpBB-пространство

 

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

Бессрочный конкурс phpBB-ориентированных материалов
FastVPS — надёжный и доступный хостинг для phpBB
Изображение