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

> Данные за каждый месяц, как лучше реализовать?
twin  
Дата
Цитировать сообщение

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



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

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

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


Цитата (Valick @ 26.12.2014 - 04:20)
Цитата
Накой тратить крупные суммы, когда прекрасно работает цикл.

просто снежный ком вырос, когда это стоило не дорого это никому не надо было, обычное русское "и так сойдёт"

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

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

Так что правила, это конечно хорошо. Но есть в них исключения.


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

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

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

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

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



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

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5493
Пользователь №: 35718
На форуме: 4 года, 17 дней
Карма: 167




Цитата (twin @ 26.12.2014 - 08:03)
Но есть в них исключения.

это называется костыли, исключения - это когда нет других вариантов wink.gif


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

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



Пофигист
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 783
Пользователь №: 36058
На форуме: 3 года, 11 месяцев, 10 дней
Карма: 40




Цитата (Valick @ 25.12.2014 - 23:26)
если бы это было на самом деле так...

Читайте доку, полезно бывает wink.gif
И PDO тут не причём - это просто обёртка, одна из.


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

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



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

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5493
Пользователь №: 35718
На форуме: 4 года, 17 дней
Карма: 167




Цитата
Читайте доку, полезно бывает

ссылочку пожалуйста
Цитата
И PDO тут не причём - это просто обёртка, одна из.

это не просто обёртка у неё собственные драйвера для работы с БД


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

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



Пофигист
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 783
Пользователь №: 36058
На форуме: 3 года, 11 месяцев, 10 дней
Карма: 40




Цитата (twin @ 25.12.2014 - 22:58)
Есть еще одна беда. Время. У меня есть скрипт, который по крону раз в час пересчитывает статистику. Основная таблица очень большая и если делать один апдейт, таблица лочится и все остальное просто ложится. Нагрузка на БД очень большая, порядка 40-50 запросов секунду. Не говоря уже о памяти.

Скрипт не простой, апдейтится несколько таблиц, потому там транзакция. Выборка тоже из нескольких, плюс вычисления на стороне PHP. Скрипт работает непростительно долго, потому и крон.

Если кто-то подскажет, как сделать это не в цикле, буду признателен.

Вернее даже не так. Кто предложит более оптимальный вариант, чем апдейт в цикле, тот молодец.

Я думаю, что в Вашем случае стоит прислушаться к sergeiss и перенести эту бизнес-логику из PHP в хранимку. Хотя без подробностей совет конечно про сферического коня. smile.gif
И да, цифра в 50 запросов ничего не говорит, запрос запросу рознь, - важно число читаемых строк на клиента и число изменяемых строк - должно быть порядка 10-20К/с по совокупности. Внутреннее число чтений из таблиц для InnoDB должно быть порядка пары-другой миллионов в сек (см. Innodb_rows_read# и т.п.). Кроме того update позволяет и читать и изменять несколько связанных таблиц - процесс заметно ускоряется. Транзакция это нормально. Таблица не должна "лочится" принципиально - что-то у Вас не так в датском королевстве, ищите.
С другой стороны, принцип "Работает - не трож" ни кто не отменял. wink.gif


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

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



Пофигист
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 783
Пользователь №: 36058
На форуме: 3 года, 11 месяцев, 10 дней
Карма: 40




Цитата (Valick @ 26.12.2014 - 11:08)
Цитата
Читайте доку, полезно бывает

ссылочку пожалуйста

Читатйте доку про mysqli::query параметр resultmode и про mysqli_use_result, mysqli_store_result.


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

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



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

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

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


Цитата (Valick @ 26.12.2014 - 06:37)
Цитата (twin @ 26.12.2014 - 08:03)
Но есть в них исключения.

это называется костыли, исключения - это когда нет других вариантов wink.gif

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

А правила без исключений, это фанатизм кстати.


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

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

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

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

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



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

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

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


S.Chushkin
Цитата
И да, цифра в 50 запросов ничего не говорит, запрос запросу рознь
Тут не столько в нагрузке дело. Если собрать все данные в один апдейт, он выполняется жутко долго. До нескольких минут бывает. За это время скапливается огромная очередь. Соответственно сайт ложится. А в цикле я усыпляю скрипт при каждой итерации на долю секунды, очередь рассасывается (вернее не успевает собираться) и все довольны.

Хранимка тут не поможет. Она все равно отожрет очень много времени.


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

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

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

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

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



Пофигист
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 783
Пользователь №: 36058
На форуме: 3 года, 11 месяцев, 10 дней
Карма: 40




Цитата (twin @ 26.12.2014 - 11:36)
Если собрать все данные в один апдейт, он выполняется жутко долго. До нескольких минут бывает.

Покажи запросы и параметры данных/таблиц, чтобы говорить предметно.
А так критерий один - при изменении таблиц должно отрабатываться порядка 20К записей в сек (+/-).


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

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



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

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

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


S.Chushkin
Цитата
Таблица не должна "лочится" принципиально - что-то у Вас не так в датском королевстве, ищите.
Тут был один раз огромный холивар на эту тему. И доков я перечитал гору. В теории не должна, но на практике факт остается фактом. Жаль не могу показать распечатку процессов, не валить же сайт специально, но она лочится как миленькая. Уж не знаю почему.


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

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

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

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

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



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

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

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


S.Chushkin
Наврал насчет количества. 40-50 в секунду, это посещаемость. Количество запросов гораздо выше. Не 20k конечно, но все же. Данные не могу показать, сам понимаешь. Специально готовить для показа не вижу смысла. По одной простой причине.
Цитата
принцип "Работает - не трож" ни кто не отменял.
Зачем что-то менять, когда все прекрасно работает. Я не фанатик.

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

Присоединённое изображение
Присоединённое изображение


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

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

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

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

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




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11787
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 13 дней
Карма: 429

Трезвый :
7 лет, 3 месяца, 13 дней


проверил MYSQLI_ASYNC, затраты 287 571 968 на той же таблице
код использовал из мануала http://php.net/manual/ru/mysqli.poll.php


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

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



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

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5493
Пользователь №: 35718
На форуме: 4 года, 17 дней
Карма: 167




Цитата (S.Chushkin @ 26.12.2014 - 10:30)
Читатйте доку про mysqli::query параметр resultmode и про mysqli_use_result, mysqli_store_result.

и что по вашему я там должен вычитать? то что из MySQL в РНР идёт чтение построчно? так я об этом и говорю, и более того точно так же себя должен вести PDO, что само по себе логично.
Я просил ссылку на то что PDO по вашему мнению грузит сразу весь результат в РНР и уже на стороне РНР копается в нём по средствам fetch()


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

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



Пофигист
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 783
Пользователь №: 36058
На форуме: 3 года, 11 месяцев, 10 дней
Карма: 40




Цитата (Valick @ 26.12.2014 - 12:01)
Я просил ссылку на то что PDO...

Я не использовал PDO, не пользую и не буду, поэтому про неё ищите сами.


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

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




******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 11787
Пользователь №: 23195
На форуме: 6 лет, 4 месяца, 13 дней
Карма: 429

Трезвый :
7 лет, 3 месяца, 13 дней


Цитата
Я просил ссылку на то что PDO по вашему мнению грузит сразу весь результат в РНР и уже на стороне РНР копается в нём по средствам fetch()

а что, это не очевидно было после этих результатов?


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

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

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