
![]() |
Здравствуйте Гость ( Вход | Регистрация ) |
|
|
|
![]() ![]() ![]() |
![]() |
|||||
![]() ![]() Глухой нуб ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Администратор ![]() Сообщений: 17423 Пользователь №: 6543 На форуме: Карма: 327 Трезвый : 14 лет, 5 месяцев, 21 день ![]() |
Все в точности до наоборот. Раньше статистика у меня пересчитывалась в он-лайн режиме. Потом база распухла и стала жутко тормозить. Пришлось вешать на крон. Потом она распухла еще больше и пришлось делить на партии, потому что за раз это стало невозможно. И вот теперь уже два года спокойненько пыхтит цикл и есть пить не просит. Смысла что-то изобретать ради того, чтобы сказать "запрос в цикле - плохо" нет ни малейшего смысла. По моим расчетам задела хватит еще лет на пять. А за это время много воды утечет. Уже сейчас готовится новая версия с чистыми таблицами. Так что правила, это конечно хорошо. Но есть в них исключения. -------------------- Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.
Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право. Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках. ![]() |
||||
![]() |
|||
![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 6470 Пользователь №: 35718 На форуме: Карма: 208 ![]() |
это называется костыли, исключения - это когда нет других вариантов ![]() -------------------- |
||
![]() |
|||
![]() ![]() Пофигист ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 883 Пользователь №: 36058 На форуме: Карма: 43 ![]() |
Читайте доку, полезно бывает ![]() И PDO тут не причём - это просто обёртка, одна из. -------------------- |
||
![]() |
|||||
![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 6470 Пользователь №: 35718 На форуме: Карма: 208 ![]() |
ссылочку пожалуйста
это не просто обёртка у неё собственные драйвера для работы с БД -------------------- |
||||
![]() |
|||
![]() ![]() Пофигист ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 883 Пользователь №: 36058 На форуме: Карма: 43 ![]() |
Я думаю, что в Вашем случае стоит прислушаться к sergeiss и перенести эту бизнес-логику из PHP в хранимку. Хотя без подробностей совет конечно про сферического коня. ![]() И да, цифра в 50 запросов ничего не говорит, запрос запросу рознь, - важно число читаемых строк на клиента и число изменяемых строк - должно быть порядка 10-20К/с по совокупности. Внутреннее число чтений из таблиц для InnoDB должно быть порядка пары-другой миллионов в сек (см. Innodb_rows_read# и т.п.). Кроме того update позволяет и читать и изменять несколько связанных таблиц - процесс заметно ускоряется. Транзакция это нормально. Таблица не должна "лочится" принципиально - что-то у Вас не так в датском королевстве, ищите. С другой стороны, принцип "Работает - не трож" ни кто не отменял. ![]() -------------------- |
||
![]() |
|||||
![]() ![]() Пофигист ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 883 Пользователь №: 36058 На форуме: Карма: 43 ![]() |
Читатйте доку про mysqli::query параметр resultmode и про mysqli_use_result, mysqli_store_result. -------------------- |
||||
![]() |
|||||
![]() ![]() Глухой нуб ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Администратор ![]() Сообщений: 17423 Пользователь №: 6543 На форуме: Карма: 327 Трезвый : 14 лет, 5 месяцев, 21 день ![]() |
Так их и нет. И быть не может. Единственный вариант - так же разбить на кусочки и часто-часто запускать крон. Но по сути это тот же цикл - раз, нестабильно и глючно - два. Я пробовал. И вот это точно костыль. А правила без исключений, это фанатизм кстати. -------------------- Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.
Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право. Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках. ![]() |
||||
![]() |
|||
![]() ![]() Глухой нуб ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Администратор ![]() Сообщений: 17423 Пользователь №: 6543 На форуме: Карма: 327 Трезвый : 14 лет, 5 месяцев, 21 день ![]() |
S.Chushkin
Тут не столько в нагрузке дело. Если собрать все данные в один апдейт, он выполняется жутко долго. До нескольких минут бывает. За это время скапливается огромная очередь. Соответственно сайт ложится. А в цикле я усыпляю скрипт при каждой итерации на долю секунды, очередь рассасывается (вернее не успевает собираться) и все довольны.
Хранимка тут не поможет. Она все равно отожрет очень много времени. -------------------- Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.
Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право. Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках. ![]() |
||
![]() |
|||
![]() ![]() Пофигист ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 883 Пользователь №: 36058 На форуме: Карма: 43 ![]() |
Покажи запросы и параметры данных/таблиц, чтобы говорить предметно. А так критерий один - при изменении таблиц должно отрабатываться порядка 20К записей в сек (+/-). -------------------- |
||
![]() |
|||
![]() ![]() Глухой нуб ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Администратор ![]() Сообщений: 17423 Пользователь №: 6543 На форуме: Карма: 327 Трезвый : 14 лет, 5 месяцев, 21 день ![]() |
S.Chushkin
Тут был один раз огромный холивар на эту тему. И доков я перечитал гору. В теории не должна, но на практике факт остается фактом. Жаль не могу показать распечатку процессов, не валить же сайт специально, но она лочится как миленькая. Уж не знаю почему.
-------------------- Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.
Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право. Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках. ![]() |
||
![]() |
|||
![]() ![]() Глухой нуб ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Администратор ![]() Сообщений: 17423 Пользователь №: 6543 На форуме: Карма: 327 Трезвый : 14 лет, 5 месяцев, 21 день ![]() |
S.Chushkin Наврал насчет количества. 40-50 в секунду, это посещаемость. Количество запросов гораздо выше. Не 20k конечно, но все же. Данные не могу показать, сам понимаешь. Специально готовить для показа не вижу смысла. По одной простой причине.
Зачем что-то менять, когда все прекрасно работает. Я не фанатик.
Единственное, что могу показать, чтоб не быть голословным, это объемы, с которыми приходится работать. Присоединённое изображение ![]() -------------------- Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.
Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право. Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках. ![]() |
||
![]() |
|
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 12174 Пользователь №: 23195 На форуме: Карма: 441 Трезвый : 15 лет, 9 месяцев, 21 день ![]() |
проверил MYSQLI_ASYNC, затраты 287 571 968 на той же таблице
код использовал из мануала http://php.net/manual/ru/mysqli.poll.php -------------------- |
![]() |
|||
![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 6470 Пользователь №: 35718 На форуме: Карма: 208 ![]() |
и что по вашему я там должен вычитать? то что из MySQL в РНР идёт чтение построчно? так я об этом и говорю, и более того точно так же себя должен вести PDO, что само по себе логично. Я просил ссылку на то что PDO по вашему мнению грузит сразу весь результат в РНР и уже на стороне РНР копается в нём по средствам fetch() -------------------- |
||
![]() |
|||
![]() ![]() Пофигист ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 883 Пользователь №: 36058 На форуме: Карма: 43 ![]() |
Я не использовал PDO, не пользую и не буду, поэтому про неё ищите сами. -------------------- |
||
![]() |
|||
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 12174 Пользователь №: 23195 На форуме: Карма: 441 Трезвый : 15 лет, 9 месяцев, 21 день ![]() |
а что, это не очевидно было после этих результатов? -------------------- |
||
![]() |
![]() ![]() ![]() |