Пишу CMS (SQL)

1. Максим (31.01.2011 / 11:59)
Нормально ли если при открытии какой либо странички cms используется в ~8-12 sql запросов? обновление онлайн, запрос на сообщения и тд...

2. Женек (31.01.2011 / 12:00)
нормально, если выполняется все это быстро. А вообще используй JOIN если возможно

3. Максим (31.01.2011 / 13:50)
Да, с + JOIN будет работать по быстрее, надобно ещё доки по нему почитать, не возможно же знать весь mysql...

4. Nu3oN (31.01.2011 / 14:09)
назови все запросы

Добавлено через 03:18 сек.
з.ы с джоином выйдет примерно тоже самое время что и при нескольких запросов!

5. Lugaro (31.01.2011 / 14:17)
При запуске пустой страницы это уж слишком многовато, как по мне самое главное это учетка юзера, её нужно постоянно запрашивать дабы на страницах производить какие-то действия, проще говоря это самое часто используемое и в нормально цмс без этого не обойтись и его можно оставить, а вот все прочие действия нужно кишировать, тот же онлайнер, зачем его обновлять при каждом запросе страницы? Обновил его, забил в сессию время последнего обновления и потом уже через минут 5 опять обновляй, с приватом можно так поступить, при отправке сообщения просто в анкету записывать количество новых сообщений вот и всё, а 8-12 запросов это просто кошмар )

6. Максим (31.01.2011 / 14:40)
Array
(
    [0] => SET NAMES utf8
    [1] => SET SQL_MODE = ''
    [2] => SELECT * FROM table_configs
    [3] => UPDATE table_users SET all_hits=all_hits+1, last_hit=NOW(), is_online='Y' WHERE user_id='1';
    [4] => SELECT * FROM table_users WHERE user_id='1' LIMIT 1;
    [5] => UPDATE table_users SET is_online='N' WHERE last_hit<NOW()-INTERVAL 5 MINUTE;
    [6] => SELECT * FROM table_register WHERE remote_addr='127.0.0.1' LIMIT 1;
    [7] => SELECT * FROM table_blogs ORDER BY RAND() LIMIT 10;
    [8] => SELECT COUNT(*) FROM table_blogs;
    [9] => SELECT * FROM table_blogs ORDER BY blog_id DESC LIMIT 0, 10;
)

Запросы, это пока на стадии написания)

7. KOZZ (31.01.2011 / 14:40)
5. .::lugaro::., познавательно, +1 klass

8. Максим (31.01.2011 / 14:43)
Это не реклама!!!
http://gsmisv.ru/ - сайт который пишу.

Мне незачем сдесь рекламить не рабочий сайт.

Можете протестить регу и тд, пожалуйста)
Ка только допишу двиг, выложу в паблик.

Добавлено через 02:02 сек.
Пожалуйста выскажите свои пожелания, мне важно это сейчас, пока пишу скрипт.

Добавлено через 02:58 сек.
Генерация не большая, что уонечно хорошо, думаю так и продлжу написание скрипта дальше....

Добавлено через 05:20 сек.
Nu3oN (31 Января 2011 / 14:09)
з.ы с джоином выйдет примерно тоже самое время что и при нескольких запросов!

Смотря сколько их будет.

Я тестировал и с join sql запрос выиграл по скорости

Добавлено через 07:48 сек.
А с кешированием всех данных я уже додумася, ибо производительность от этого только в +.

9. Женек (31.01.2011 / 15:21)
4. Nu3oN, бред

10. ramzes (31.01.2011 / 15:52)
5. .::lugaro::.,
Generic: 0.0127 Sql: 12
и что кошмарного при 12 запросах?
вот генерация визави примерно в таком же месте (тут) 0.0298 сек.

11. Lugaro (31.01.2011 / 15:54)
10. ramzes, Ну да при пустом сайте, а теперь забей базу, и в онлайн человек 100 пусти, и посмотри E

12. ramzes (31.01.2011 / 16:21)
11. .::lugaro::., проверенно на 500 живых онлайн, ни каких скачков генерации не было, впятером следили

13. Lugaro (31.01.2011 / 16:52)
Что мало верится) ну сути это не меняет, я не говорю что нужно панически уменьшать количество запрос, бывают задачи где и 12 мало гг просто при запуске самой основы это очень много, под словом основа я говорю про ту часть которая не относится к контенту страницы

14. ramzes (31.01.2011 / 17:22)


15. ramzes (31.01.2011 / 17:33)
дибильный форум
второй раз писать не буду много букв

16. Марсель (01.02.2011 / 05:36)
Конфиг кэшируй.
И раз в 12-24часа обновляй..
Из таблы users вытаскивай поля только те которые нужны тебе) Ну и т.д ..
Для меня это очень много запросов)

17. ramzes (01.02.2011 / 05:47)
4-6 запросов у меня выходит
а без онлайнера 1-2 запроса)))
все зависит от того какой функционал висит, но все равно 12 запросов это не много, не мало конечно но и не много

18. Максим (01.02.2011 / 12:48)
Так моя CMS c отображением вап и веб версии. А в веб обвеса попольше будет...

19. ramzes (01.02.2011 / 15:49)
напиши какие запросы для чего,(не код а кол-во и цель) посмотрим может где сэкономить можно

20. Максим (02.02.2011 / 07:04)
Array 
( 
[0] => SET NAMES utf8 - Для корректного отображения данных из бд
[1] => SET SQL_MODE = ''  - надо убрать
[2] => SELECT * FROM table_configs - запрос конфигурации
[3] => UPDATE table_users SET all_hits=all_hits+1, last_hit=NOW(), is_online='Y' WHERE user_id='1'; +1хит юзеру
[4] => SELECT * FROM table_users WHERE user_id='1' LIMIT 1; - достаём инфу о юзере
[5] => UPDATE table_users SET is_online='N' WHERE last_hit<NOW()-INTERVAL 5 MINUTE; - обновляем онлайн
[6] => SELECT * FROM table_register WHERE remote_addr='127.0.0.1' LIMIT 1; - проверяем наличие подтверждения о реге (надо убать или сделать только для тех кто авторизовался. это уже -1 запрос)
[7] => SELECT * FROM table_blogs ORDER BY RAND() LIMIT 10; - облако тегов
[8] => SELECT COUNT(*) FROM table_blogs; - тоже можно загнать в кеш, в таблицу table_configs
[9] => SELECT * FROM table_blogs ORDER BY blog_id DESC LIMIT 0, 10;  - ну блоги не считаем, это уже модуль
)


Добавлено через 01:58 сек.
облако тегов буду кешировать потом, когда статей в блоге станет очень много, более 200-500... А сейчас при кеше же прирост производительности отрицательный...

Добавлено через 04:16 сек.
Когда юзер не авторизован, запросов гдето 7 всего, + сейчас уберу SET SQL_MODE = ''. уже 6

21. ramzes (03.02.2011 / 00:07)
если у юзера нет в сессии пароля то профиль запрашивать незачем
не за чем и писать +1 хит (как таковой непонятно зачем это, и вообще, писать надо в сессию, и раз в пару минут обновлять уже в бд, ибо эти данные не требуют секундной точности)

22. Максим (03.02.2011 / 04:16)
+1 хит (как таковой непонятно зачем это, и вообще, писать надо в сессию, и раз в пару минут обновлять уже в бд, ибо эти данные не требуют секундной точности)

Добавлено через 00:47 сек.
так сделал)))

URL: https://visavi.net/topics/18341