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

> Проблема с большим количеством запросов
twin  
Дата
Цитировать сообщение

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



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15562
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 7 дней
Карма: 299

Трезвый :
5 лет, 11 месяцев, 17 дней


Странные люди... Еще Козьма Прутков говаривал:
Цитата
Рассуждай токмо о том, о чем понятия твои тебе сие дозволяют. Так: не зная законов языка ирокезского, можешь ли ты делать такое суждение по сему предмету, которое не было бы неосновательно и глупо?
Ну откуда вам знать, какие там запросы и чем это обусловлено?

Запросы в цикле - говнокод??? Так вот могут рассуждать только школьники, начитавшиеся книжек Котерова. Я могу реально показать, где это не только нормально, но без этого вообще невозможно.

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


--------------------
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

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

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



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

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




Цитата (twin @ 8.12.2015 - 15:45)
Я могу реально показать, где это не только нормально, но без этого вообще невозможно.

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

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



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15562
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 7 дней
Карма: 299

Трезвый :
5 лет, 11 месяцев, 17 дней


Цитата (depp @ 8.12.2015 - 11:51)
интересно. покажи.

Это касается высоконагруженных систем. К примеру у меня есть таблица, довольно большая, несколько гигов, которая обновляется по крону несколько раз в сутки. К этой же таблице постоянно идет куча запросов на выборку.

Так вот, когда делаешь один большой запрос на обновление, таблица лочится, так как только одно считывание в оперативку - уже достаточно накладная операция (только не говорите про InnoDB, а то и меня сейчас в говнокодерстве обвините неразобравшись). Соответственно все остальные запросы становятся в очередь. Нагрузка большая, очередь растет моментально. И иногда, в самые пики, создается ситуация, что превышается лимит этой очереди.

А когда делаешь обновление пачками в цикле, особенно с паузой, то очередь моментом рассасывается. И все довольны.

Так что нельзя говорить ничего однозначно. Иногда логика не столь очевидна, как кажется на первый взгляд.

Мне нравится загадка: кого проще победить в драке, бегуна или боксера? 99% отвечают - бегуна. Хотя это совершенно не верно. Ибо если бегун слабее - его хрен догонишь. А если сильнее - хрен убежишь. С боксером хоть какой то шанс есть. smile.gif


--------------------
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

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

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



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

Профиль
Группа: Сын полка
Сообщений: 1780
Пользователь №: 38654
На форуме: 2 года, 11 месяцев, 7 дней
Карма: 40




bestxp, мне тоже не нравится принцип "работает - не трогай", я бы там переписал если бы это того стоило, но там написано все не плохо. Ну и что, что для удаление 95 записей требуется 750 запросов к БД, они же мелкие и это разовая операция которая происходит раз в день, а то и в неделю, плюс это простые запросы, которые не нагружают сервер. А самая главная причина, в том что источник этих запросов является ORM'ка на основе Active Record, на сохранении/удаление записей какой-то сущности там есть логика, и при массовом обновлении эта логика должна выполняться. Очень много аспектов в пользу того что это не надо переписывать и очень мало что бы переписать.

Вот можешь посмотреть, что обычно происходит при массовом (ссылка как битая вставляется, потому так)

//https://github.com/sugarcrm/sugarcrm_dev/blob/c2eae17995b3938665e1e797860067f12aec60a3/include/MassUpdate.php#L158

это для SugarCRM 6, в 7 версии немного покрасивее, но принцип тот же.


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

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

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



Reality is wrong. Dreams are for real
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1677
Пользователь №: 16955
На форуме: 7 лет, 9 месяцев, 14 дней
Карма: 94




Цитата
Так вот, когда делаешь один большой запрос на обновление, таблица лочится, так как только одно считывание в оперативку - уже достаточно накладная операция (только не говорите про InnoDB, а то и меня сейчас в говнокодерстве обвините неразобравшись).


При MyISAM таблица будет locked.


Цитата
уже достаточно накладная операция

Звучит как "Машина есть , а хожу пешком,потому что бензин дорогой"
Обычно это решается посылкой пакетов друг за другов пачками.


--------------------
Programming: Private lessons via skype £45/h

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

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



★___★mvccmv.ru★___★
******

Профиль
Журнал
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3992
Пользователь №: 25563
На форуме: 5 лет, 11 месяцев, 12 дней
Карма: 64

Трезвый :
45 лет, 9 месяцев, 10 дней


Цитата (AllesKlar @ 8.12.2015 - 15:11)

Может магнитные бури?...

нет это не магнитные
это очевидное хамство узаконенное уже тут
и Пс ух как к этому причастен
у него через пост подобные агрызания
вот народ его понял и начал в его дуже с ним говорить
так что ничего удивительного

ну я пошел user posted image


--------------------
«Гнусное свойство карликовых умов приписывать
________________!свое духовное убожество другим!»
___
О) как-же он прав=>__________________ © Оноре де Бальзак.

отличный хост(рекомендую !! )
My MVC-CMV
PMПисьмо на e-mail пользователюСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

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



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15562
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 7 дней
Карма: 299

Трезвый :
5 лет, 11 месяцев, 17 дней


Цитата (Oyeme @ 8.12.2015 - 13:15)
При MyISAM таблица будет locked.

Да. И что? В чем связь?

Цитата (Oyeme @ 8.12.2015 - 13:15)
Звучит как "Машина есть , а хожу пешком,потому что бензин дорогой"
Обычно это решается посылкой пакетов друг за другов пачками.
Какие пачки? Куда посылать? Какой бензин... Что за бред?

Вообще интересно наблюдать, как люди реагируют на вопросы)) Это называется "слышал звон, да не знаю, где он".

Может я пропустил что-то интересное, но тогда объясни, каким образом происходит модификация таблицы.

На сколько мне известно, прежде чем перезаписать файл, нужно сначала считать данные в оперативку. На уровне MySQL пока, я про PHP ничего не говорил. И именно это и есть накладные расходы при большом количестве данных. И это занимает время.

Да, InnoDB лочит таблицу на уровне строк. Но если данных изменяется много (что и предлагается любителями одного огромного запроса), то лочится много строк. А если такая залоченная строка требуется в запросе на выборку, он ставится в очередь и ждет, пока первый запрос её не отпустит.

Так как плотность запросов большая, то и "ожидающих" скапливается достаточно много. Какие пакеты, какой бензин...



--------------------
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (4) « Первая ... 2 3 [4]  Ответ в темуСоздание новой темыСоздание опроса