|
|
|
Я горе-программист или можество запросов в БД
|
|||
|---|---|---|---|
|
#18+
Приветствую всех. Для начала хочу сказать то, что все работает как нужно, никаких глюков. Проблема вот в чем: Я боюсь, я боюсь что что-то сделал не так. У меня имеется чат, при добавлении нового сообщения скрипт обращается 5 раз к БД. Это приемлемо? Первый запрос - проверка существования пользователя Второй запрос - получения ID последнего сообщения для того, чтобы склеить сообщения, в случае если один и тот же пользователь написал 2 или более раз подряд. Третий запрос - вставка или обновление (в случае склеивания) нового сообщения Четвертый запрос - добавление данных о картинках (если пользователь загружает) и это другая таблица, чтобы потом можно было картинки в галерее отображать. Пятый запрос - добавление данных об аудио файлах, опять же, другая таблица, чтобы удобно было выдергивать данные о файлах, независимо от чата. Т.к. чат нацелен на обмен музыкой и картинками, то 5 запросов в БД происходят очень часто. Нормально ли это? По сути, все запросы самые обычные, ничего сложного в них нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2015, 15:53:03 |
|
||
|
Я горе-программист или можество запросов в БД
|
|||
|---|---|---|---|
|
#18+
рекорд который я знаю это 10 тыщ запросов в секунду на ядро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2015, 16:28:06 |
|
||
|
Я горе-программист или можество запросов в БД
|
|||
|---|---|---|---|
|
#18+
да хоть бы и сто зппросов, что ему будет? он же mysql ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2015, 16:28:36 |
|
||
|
Я горе-программист или можество запросов в БД
|
|||
|---|---|---|---|
|
#18+
iwannarunawayПервый запрос - проверка существования пользователя Второй запрос - получения ID последнего сообщенияЭто делается одним запросом. Код: sql 1. Если юзера нет - вернётся пустой набор записей, иначе непустой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2015, 16:39:21 |
|
||
|
Я горе-программист или можество запросов в БД
|
|||
|---|---|---|---|
|
#18+
Akina, Нет, так не получится, в процессе проверки существования пользователя нужно кое-какие данные оттуда достать, которые в процессе обработки кода пригодятся. А вообще, на прктике, это нормально? Ну столько запросов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2015, 17:09:25 |
|
||
|
Я горе-программист или можество запросов в БД
|
|||
|---|---|---|---|
|
#18+
bochkov, Я не совсем понял, что вы под этим имеете в виду. Вообще столько запросов приемлемо для нормального проекта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2015, 17:12:13 |
|
||
|
Я горе-программист или можество запросов в БД
|
|||
|---|---|---|---|
|
#18+
ScareCrow, А мой рекорд приемлем?))) Это вообще нормально? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2015, 17:12:43 |
|
||
|
Я горе-программист или можество запросов в БД
|
|||
|---|---|---|---|
|
#18+
iwannarunaway, не задумывайтесь. Все нормальное. Есть выгодное и невыгодное. как будет тормозить - вам скажут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2015, 17:13:46 |
|
||
|
Я горе-программист или можество запросов в БД
|
|||
|---|---|---|---|
|
#18+
Ну так и доставай нужные данные по юзеру в этом запросе. Просто если тебе нужно САМОЕ последнее сообщение, а не последнее сообщение этого юзера - вместо таблицы Messages используй подзапрос из неё с ORDER BY DateTime DESC LIMIT 1. Если юзера нет - будет пустой набор, если он есть, будет одна запись, со всеми нужными на него данными, причём если последний месс не его - в полях из таблицы сообщений будет NULL, а если его - то данные по этому сообщению. Не, если скриптовый сервер и сервер БД на одном хосте - можно и два запроса, а если там сетевой трансфер, лучше уменьшить их количество. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2015, 17:17:20 |
|
||
|
|

start [/forum/topic.php?fid=47&gotonew=1&tid=1833625]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
120ms |
get topic data: |
11ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 418ms |

| 0 / 0 |
