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 :: MySQL Как снизить нагрузку на базу

 PHP.SU

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


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

> Описание: PHP БД
kuzmit4
Отправлено: 30 Июня, 2015 - 05:17:16
Post Id


Новичок


Покинул форум
Сообщений всего: 31
Дата рег-ции: Март 2015  


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




Опишу проблему:
Есть база в миллион записей, и скрипт который с ней работает.
Скрипт делает следующее - берет строку из базы проверяет данные на другом сайте, и записывает в базу результат, Плюс в ячейку active добавляет "1" - означает что строка уже обработана, и ее проверять ненужно.
После чего переходит к следующей строке в базе с active=0. Т.е. на каждую строку по 2 запроса.

Т.к. база большая - то сильно нагружается сервер. По этому пришлось задуматься как это все дело оптимизировать.
Есть вопрос. Можно ли проверять строки не по очереди, а например по сто штук за раз. Например взяли 100 строк с значением active=0 проверили это дело скриптом, и записали все данные обратно.

Т.е. чтобы не было по 2 обращения к каждой строке (чтение/запись) данных.
А записывать и читать данные кусками (по 100 строк за раз)

Не кидайте камнями, если так сделать нельзя. Говорю сразу - я в танке.
Так же будет неплохо если предложите варианты как можно снизить нагрузку на такую большую базу.
Как сократить кол-во запросов и что вообще в таком случае делать.
 
 Top
DeepVarvar Супермодератор
Отправлено: 30 Июня, 2015 - 09:58:02
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Ну так это не на базу нагрузка. Он же на другой сайт идет. Это ж 1-3 секунды. От этого частота обращений к БД очень маленькая.
 
 Top
Мелкий Супермодератор
Отправлено: 30 Июня, 2015 - 10:38:11
Post Id



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


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


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




Лям записей - это копейки, а не большая база. Даже для MySQL.
Индекс хоть стоит под запрос чтения?


-----
PostgreSQL DBA
 
 Top
esterio
Отправлено: 30 Июня, 2015 - 12:53:15
Post Id



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


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


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




multi_curl если я верно понял о чем речь
 
 Top
M-A-X
Отправлено: 03 Июля, 2015 - 17:57:52
Post Id


Новичок


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


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




Размер базы
Индексы
EXPLAIN
Сколько времени занимают запросы
 
 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