Пишу 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
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 пусти, и посмотри
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