Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Закрытая темаСоздание новой темыСоздание опроса

> MySQL 4 обращения к БД это много!?
горе-прогер  
 ۩     Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 18
Пользователь №: 42097
На форуме: 1 год, 2 месяца, 4 дня
Карма:




Приветствую всех!
У меня на сайте имеется раздел для личной переписки. Так вот, когда пользователь отправляет новое сообщение то скрипт 4 раза обращается к БД. Это много или нормально, сколько запросов в идеале должно быть для таких целей? Ниже опишу то как это у меня работает.

Первое обращение в БД - проверка что пользователь добавлен в контакты.
Второе обращение - запись нового сообщения в БД
Третье - помечаю сообщение как отвеченное (И не только, на самом деле, с этим же запросом сохраняется последний ID, чтобы потом знать с какого сообщения динамически подгружать другие)
Четвертное - Помечаем сообщение как непрочитанное для контакта которому его отправили (Сделано так для будущего группового чата, чтобы подсчет непрочитанных сообщений велся у каждого отдельно)

Какой совет вы можете дать по этому поводу?
Это вообще нормально столько запросов за раз?

Со структурой таблиц все в порядке, ключи, индексы и т.д. все настроена как подобает. И речь не идет о мультизапросах, меня больше волнует именно запросы которые будет осуществлять MySQL для записи, обновлений и выборки.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3406
Пользователь №: 38635
На форуме: 3 года, 20 дней
Карма: 174




Цитата (горе-прогер @ 12.11.2015 - 13:53)
Третье - помечаю сообщение как отвеченное (И не только, на самом деле, с этим же запросом сохраняется последний ID, чтобы потом знать с какого сообщения динамически подгружать другие)
Четвертное - Помечаем сообщение как непрочитанное для контакта которому его отправили (Сделано так для будущего группового чата, чтобы подсчет непрочитанных сообщений велся у каждого отдельно)

Это одна и та же запись в таблице?
Если да, то можно одним UPDATE обойтись


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Аццкая хрень
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5551
Пользователь №: 32538
На форуме: 4 года, 7 месяцев, 20 дней
Карма: 51




Чтоб не постить лишние темы: выборка из 4-х таблиц в 4 запросах - это норма?


--------------------
Правда тоже ложь, но с иным углом.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
GET  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



TERRAFORMING ENGINEER
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 3883
Пользователь №: 21196
На форуме: 6 лет, 10 месяцев, 13 дней
Карма: 87




горе-прогер

Если они логические не связаны, то чего переживать? У меня есть страницы где 10 раз обращается к БД.

Другой разговор, что бывает можно за один раз все вытащить через JOIN, но только там где это нужно. smile.gif


--------------------
Не тот велик, кто не падал, а тот кто падал и поднимался.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
GET  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



TERRAFORMING ENGINEER
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 3883
Пользователь №: 21196
На форуме: 6 лет, 10 месяцев, 13 дней
Карма: 87




Цитата
Чтоб не постить лишние темы: выборка из 4-х таблиц в 4 запросах - это норма?


Ну вот не могу понять вопрос. Зависит-же от логики скрипта, где-то норма где-то нет. smile.gif Конечно надо стараться сокращать число запросов к БД, но есть места где не обойтись без отдельных запросов и даже есть места где можно сделать JOIN, но не нужно из-за высоких затрат на объединение, скажем.


--------------------
Не тот велик, кто не падал, а тот кто падал и поднимался.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22762
Пользователь №: 20039
На форуме: 7 лет, 1 месяц, 9 дней
Карма: 600




горе-прогер
Это очень мало. wink.gif


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Zzepish  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Аццкая хрень
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 5551
Пользователь №: 32538
На форуме: 4 года, 7 месяцев, 20 дней
Карма: 51




GET
просто нужно сделать выборку, для занесения данных а массив)
4 независимые таблицы. JOIN'ом нечего соединять)


--------------------
Правда тоже ложь, но с иным углом.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
горе-прогер  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 18
Пользователь №: 42097
На форуме: 1 год, 2 месяца, 4 дня
Карма:




Цитата (AllesKlar @ 12.11.2015 - 16:11)
Это одна и та же запись в таблице?
Если да, то можно одним UPDATE обойтись

Нет, разные. Логика скрипта не позволяет осуществить это в одной таблице!
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
горе-прогер  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 18
Пользователь №: 42097
На форуме: 1 год, 2 месяца, 4 дня
Карма:




Цитата (GET @ 12.11.2015 - 16:13)
горе-прогер

Если они логические не связаны, то чего переживать? У меня есть страницы где 10 раз обращается к БД.

Другой разговор, что бывает можно за один раз все вытащить через JOIN, но только там где это нужно. smile.gif

Все таблицы, по сути, не связаны между собой. Дело в том, что переписка может быть активной, а переписываться могут сразу 1000 и больше пользователей, вот и думаю, нормально ли это для приложения или нет
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
горе-прогер  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 18
Пользователь №: 42097
На форуме: 1 год, 2 месяца, 4 дня
Карма:




Цитата (inpost @ 12.11.2015 - 16:21)
горе-прогер
Это очень мало. wink.gif

Ну не знаю) Я привередлив к производительности. Тем более речь идет о скрипте к которому много пользователей и часто будут обращаться. Здесь в корне все меняется
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
GET  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



TERRAFORMING ENGINEER
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 3883
Пользователь №: 21196
На форуме: 6 лет, 10 месяцев, 13 дней
Карма: 87




Цитата
Ну не знаю) Я привередлив к производительности. Тем более речь идет о скрипте к которому много пользователей и часто будут обращаться. Здесь в корне все меняется


Цитата
Первое обращение в БД - проверка что пользователь добавлен в контакты.
Второе обращение - запись нового сообщения в БД
Третье - помечаю сообщение как отвеченное (И не только, на самом деле, с этим же запросом сохраняется последний ID, чтобы потом знать с какого сообщения динамически подгружать другие)
Четвертное - Помечаем сообщение как непрочитанное для контакта которому его отправили (Сделано так для будущего группового чата, чтобы подсчет непрочитанных сообщений велся у каждого отдельно)


ну можно попробывать спланировать по другому архитектуру БД, у меня например всё в одной таблице, +подключается еще одна в случае если нужно плюсануть личку, но у меня и инициация переписки не совсем обычная, из-за особенностей самого приложения.


--------------------
Не тот велик, кто не падал, а тот кто падал и поднимался.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
горе-прогер  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 18
Пользователь №: 42097
На форуме: 1 год, 2 месяца, 4 дня
Карма:




Цитата (GET @ 12.11.2015 - 16:39)
ну можно попробывать спланировать по другому архитектуру БД, у меня например всё в одной таблице, +подключается еще одна в случае если нужно плюсануть личку, но у меня и инициация переписки не совсем обычная, из-за особенностей самого приложения.

Я как только не ломал голову над архитектурой БД.
Не хочется проектировать таблицы так, чтобы скрипт часто обращался к таблице с сообщениями т.к. эта самая тяжелая таблица будет. Да и в любом случае, чтобы все работало без каких либо ограничений (без урезания функционала) то по другому я ничего не могу придумать, на самом деле долго голову ломал на этим. И поэтому меня сильно заволновал вопрос, нормально ли столько обращений, если принимать во внимание тот факт, что сайт будет посещаемым, скажем от 10 тыс и больше
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 15110
Пользователь №: 4190
На форуме: 8 лет, 11 месяцев, 10 дней
Карма: 448




Цитата (горе-прогер @ 12.11.2015 - 15:53)
Какой совет вы можете дать по этому поводу?
Это вообще нормально столько запросов за раз?

"Не трожь работающую систему!" (с) один из "Законом Мерфи" wink.gif

А вообще, если хочется пооптимизировать, то внимательно почитай про триггеры. Для некоторых позиций из перечисленных они тебе очень даже пригодятся. В частности, для пп. 3 и 4. Они, т.е. триггеры, позволят тебе не делать некоторые запросы, т.к. они будут сделаны автоматически (при выполнении запросов из пп.1 и 2).

Это сообщение отредактировал sergeiss - 12.11.2015 - 16:50


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
горе-прогер  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 18
Пользователь №: 42097
На форуме: 1 год, 2 месяца, 4 дня
Карма:




Цитата (sergeiss @ 12.11.2015 - 16:47)
А вообще, если хочется пооптимизировать, то внимательно почитай про триггеры. Для некоторых позиций из перечисленных они тебе очень даже пригодятся. В частности, для пп. 3 и 4. Они, т.е. триггеры, позволят тебе не делать некоторые запросы, т.к. они будут сделаны автоматически (при выполнении запросов из пп.1 и 2).

Да, я слышал, даже как-то давненько экспериментировал с ними, вот только давно было.
Триггреы ведь MYISAM поддерживают? Я уже и не помню
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
GET  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



TERRAFORMING ENGINEER
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 3883
Пользователь №: 21196
На форуме: 6 лет, 10 месяцев, 13 дней
Карма: 87




Цитата
Я уже и не помню


Ну не беда smile.gif
user posted image


--------------------
Не тот велик, кто не падал, а тот кто падал и поднимался.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Закрытая темаСоздание новой темыСоздание опроса