Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: 20 000 запросов в минуту

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: множественные sql запросы
Prizma
Отправлено: 28 Января, 2016 - 22:39:30
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




3,5 Мб. текста через preg_match_all довольно быстро делятся на 20 000 строк (в пределах секунды) для обновления параметров в бд, все данные это цифры. Данные должны обновляться раз в минуту. Проблема в том, что обновление параметров идет крайне медленно... за минуту еле успевает обновится половина.
Не силен в настройке mysql сервера, может стоит что то там поковырять и выделить больше ресурсов (ЦП и память далеки от полной нагрузки)?

По хорошему то на редис или мемкеш перебросить все это и тогда бы проблема отвалилась, но пока так, как есть.

Apache-2.4+Nginx-1
PHP-5.6
MySQL-5.6
(Добавление)
если mysql в любом случае не сможет обработать хотя бы 1000, а лучше 2000 update в секунду на 5 чисел int, тогда буду менять концепцию... или все таки может?
 
My status
 Top
DelphinPRO
Отправлено: 28 Января, 2016 - 22:54:07
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




Заключить в транзакцию? По идее должно обновляться быстрее.


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
Мелкий Супермодератор
Отправлено: 28 Января, 2016 - 23:04:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




И не по идее, а по факту. Пишите в одной транзакции.

Всосать 30тыс записей, сверить их с имеющимися данными в таблице, отчитаться на приложение о найденных аномалиях, смержить с таблицей, прогнать весь массив этих данных через реферальную программу, пересчитать ещё штуки 3 таблицы аггрегации - запросто. Всё перечисленное - 5 секунд реального времени.


-----
PostgreSQL DBA
 
 Top
Prizma
Отправлено: 28 Января, 2016 - 23:05:22
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




DelphinPRO пишет:
Заключить в транзакцию? По идее должно обновляться быстрее.

Попробую, у меня в этом случае на это время блокируется таблица эта так? (структура Innodb)
 
My status
 Top
Panoptik
Отправлено: 29 Января, 2016 - 00:07:40
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




у инны лочатся строки, у мисама вся таблица целиком


-----
Just do it
 
 Top
Prizma
Отправлено: 29 Января, 2016 - 21:10:05
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




Мелкий пишет:
Всосать 30тыс записей, сверить их с имеющимися данными в таблице, отчитаться на приложение о найденных аномалиях, смержить с таблицей, прогнать весь массив этих данных через реферальную программу, пересчитать ещё штуки 3 таблицы аггрегации - запросто. Всё перечисленное - 5 секунд реального времени.

т.е. сделать селект устаревших данных прогнать аномалии и внести изменения через транзакцию как то так?
 
My status
 Top
Мелкий Супермодератор
Отправлено: 29 Января, 2016 - 21:41:42
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Это был пример с одного моего проекта, что mysql успевает сделать за 5 секунд и одну транзакцию.


-----
PostgreSQL DBA
 
 Top
Prizma
Отправлено: 29 Января, 2016 - 22:07:00
Post Id



Посетитель


Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012  
Откуда: Санкт-Петербург


Помог: 5 раз(а)




И так сделал таймлаин и замерил скорость на разных этапах..
До оптимизации 1065 строк обновлял в пределах 12-13 секунд
С транзакцией 17-18к строк глотает за 4 секунды, всё круто спасибо... с учетом загрузки выборки и манипуляций за 8 секунд отработал - всё супер

PS: начал PDO вылетать с неизвестной ошибкой... заглянул в класс соединения и о боже заметил, что там для каждого запроса создается новый экземпляр PDO.. теперь всё ок
 
My status
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB